UART (универсальный асинхронный приемник передатчик) часто используется для связи микроконтроллера с другими устройствами. Например по UART в микроконтроллер stm32f103c8 может записываться программа. Для этого, в данном микроконтроллере, имеется аппаратная поддержка данного интерфейса. В stm32f103c8 есть некоторое количество UARTов на случай если одного не хватит. Но программируется данный микроконтроллер через UART1 (а точнее USART1). Режим программирования по UART1 есть тогда когда на BOOT0 есть напряжение логической единицы. Если нет то UART1 может использоваться как обычный UART для связи микроконтроллера с другими устройствами. Этот UART удобно использовать для связи микроконтроллера с компьютером через USB-UART переходник, который также используется для записи программы, т.к. при этом схему не придется чем либо ещё дополнять. Чтобы использовать USART1 нужно включить его тактирование а также тактирвание порта A т.к. пины этого USARTа находятся на данном порту.
Тактирование их включается установкой битов 2 и 14 регистра APB2ENR.
Через пин PA9 (TX) происходит передача поэтому его надо настроить на push-pull выход с альтернативной функцией.
Пин PA10 (RX) можно не настраивать т.к. изначально он уже настроен как надо для данного случая. В регистр USART1->BRR надо записать число которое определит скорость передачи данных. В данный регистр заноситься число на которое делиться частота шины от которой тактируется USART чтобы получилась нужная скорость. Т.е. если например нужна скорость 9600 бод а частота шины 72 000 000 Гц (по умолчанию) то в регистр нужно занести = 72 000 000 / 9600 = 7500.
Чтобы разблокировать UART и передачу по нему, нужно установить биты 3 и 13 регистра USART1->CR1.А также добавить небольшую задержку чтобы символы не слишком быстро появлялись в терминале. Виде по данной теме:
Комментариев нет:
Отправить комментарий