Разделы инструкций

В сети

Пользователей: 133
Из них просматривают:
Аналоги: 36. Даташиты: 16. Инструкции: 10. Новости: 29. Остальное: 10. Программы: 4. Производители: 2. Теги: 1. Торрент: 2. Форум: 19. Чат: 4.
Участников: 6
Гостей: 127

an , KT315 , alex01981 , Google , wolf170571 , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

Функции для работы с USART

Рассмотрим функции для работы с аппаратной реализацией. Аппаратный модуль USART имеется во многих представителях семейства PIC. Библиотека mikroC для работы с аппаратной реализацией IJSART предоставляет возможности удобной работы в асинхронном полнодуплексном режиме.

 

Схема аппаратного подключения RS-232

Рис. 25. Схема аппаратного подключения RS-232 

 

 Можно легко организовать связь с другими устройствами, поддерживающими протокол RS-232, например, с персональным компьютером (см. рис. 25). Для этого потребуется микроконтроллер с аппаратным USART, например PIC16F877. В программе можно использовать все функции, приведённые ниже.

 
Для работы с USART используются библиотечные функции Usart_Init, Usart_Data_Ready, Usart_Read и Usart_Write. Описание этих функций представлено в таблицах 14-17 соответственно.

 

 Таблица 14. Описание функции Usart_Init

Прототипvoid Usart_lnit(const unsigned long baud_rate)
Возвращаемое значениеНет
ОписаниеИнициализация аппаратуры модуля USART требуемой скоростью обмена. Для подробной информации о разрешённых скоростях обмена при заданных частотах тактового генератора следует обратиться к документации на микроконтроллер. Если будет задана запрещённая скорость обмена, компилятор сообщит об ошибке

 

ТребованияНеобходим микроконтроллер с аппаратным USART. Функция Usartjnit должна быть вызвана перед использованием всех остальных функций библиотеки работы с USART
ПримерИнициализация аппаратуры USART и установка скорости обмена 2400 bps: Usart_lnit(2400)

  

 Таблица 15. Описание функции Usart_Data_Ready

Прототипunsigned short Usart_Data_Ready(void)
Возвращаемое значениеФункция возвращает значение 1, если есть принятые данные, и 0 в противном случае
ОписаниеЭту функцию следует использовать для проверки наличия данных для чтения в приёмном регистре
ТребованияАппаратный модуль USART должен быть предварительно проинициализирован и задана скорость обмена с помощью функции Usart_Init
Пример

Если данные готовы, прочитать их:

int receive;
...

if (Usart_Data_Ready()) receive = Usart_Read;

 

 Таблица 16. Описание функции Usart_Read

Прототипunsigned short Usart_Read(void)
Возвращаемое значениеВозвращает значение принятого байта. Если байт не принят, возвращает О
ОписаниеФункция считывает принятые данные из приёмного регистра аппаратуры USART. Для проверки наличия принятых данных следует использовать функцию Usart_Data_Ready
ТребованияАппаратный модуль USART должен быть предварительно проинициализирован, а скорость обмена задана с помощью функции Usartjnit
Пример

Если данные готовы, прочитать их:

int receive;
...

if (Usart_Data_Ready()) receive = Usart_Read();

 

 Таблица 17. Описание функции Usart_Write

Прототипvoid Usart_Write(unsigned short data)
Возвращаемое значениеНет
ОписаниеФункция передаёт байт (data) no USART
ТребованияАппаратный модуль USART должен быть предварительно проинициализирован, а скорость обмена задана с помощью функции Usartjnit
Примерint chunk = 0x1E;
Usart_Write(chunk); /* послать chunk no USART */

 


Микроконтроллеры, имеющие по два модуля USART, например P18F8520, требуют задать модуль, который будет использоваться. Для этого достаточно просто приписать цифру 1 или 2 к названию функции. Например, Usart_Write2(). Также, с целью обратной совместимости с предыдущими версиями компилятора и облегчения управления кодами, МК с несколькими модулями USART имеют Usart-библиотеку, которая идентична Usart 1 (т.е. можно использовать Usart_Init() вместо Usart l_Init() для операций с USART).

 
Следующий пример программы демонстрирует простой обмен данными по USART. Когда МК принимает данные, он немедленно отправляет те же данные обратно. Если подключить PIC к ПК (см. рис. 25), можно проверить обмен с терминалом для связи по RS-232. В среде разработки терминал запускается из выпадающего меню командой Tools -> Terminal.

unsigned short i;
void main() {
// Инициализация модуля USART (8 бит, скорость обмена 2400 бод, без к/ч)
Usart_Init( 2400 ) ;
do {
if (Usart_Data_Ready()) { // Если данные приняты
i = Usart_Read(); // Прочитать, что принято
Usart_Write(i); //и отправить назад по USART
}
} while ( 1 ) ;
} // end
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

Если у вас нет жидкого канифольного флюса, его легко изготовить самостоятельно.

Интересно

Выходные каскады УНЧ бывают разных типов и не всегда есть возможность осуществить первое включение без оконечного каскада. В этом случае возможна замена низкоомных токоизмерительных резисторов на номиналы 5-10 Ом.

Похожие инструкции