В статье “STM32 HAL UART” мы рассмотрели функции HAL для работы с UART STM32. Сегодня же разберем, как проводится настройка Uart в микроконтроллерах STM32, с помощью CubeMX. С генерируем настройки для микроконтроллера STM32F407VGTx.
Настройка UART в CubeMX
Настройка Uart находится в вкладке Connectivity. На самом деле настроек у UART не так много, разберем их подробнее:
- Baud Rate – скорость обмена данными между двумя устройствами.
- Word Length – количество бит данных. Возможно выбрать 8 или 9 бит данных.
- Parity – бит четности. В CubeMx мы можем выбрать NONE (нет бита четности), Even (Четный бит четности), Odd (не четный бит четности). Это такой бит при котором к данным добавляется еще один бит. Он может быть равен 1 или 0. Если мы выбрали нечетный бит четности, то при добавлении его к данным у нас получится нечетное количество единиц, в случае с четным битом четности, в итоге мы получим четное количество единиц.
- Stop Bits – стоповый бит. Можем выбрать 1 или 2. Это количество бит которые завершают посылку одного пакета данных.
- Data Direction – Выбираем режим обмена. Только передача, только прием или прием и передача.
- Over Sampling – здесь мы настраиваем скорость передискретизации для возможного восстановления данных по линии RX. Данную скорость можно выбрать увеличенную в 8 или 16 раз.
ВНИМАНИЕ! Настройка Over Sampling имеется не во всех микроконтроллерах STM32. По этому выставив ее, контроллер проигнорирует ее.
Настройка прерываний UART в STM32
Прерывания UART в STM32 настраиваются в вкладке NVIC Settings. Установив галку мы активируем прерывание.
Так же необходимо зарегистрировать функции Callback. Это можно сделать через Project Maneger->Advensed Setting в поле справа Register CalBack:
Настройка UART DMA
Настроить DMA можно на вкладке DMA Settings. Здесь, для каждой линии RX и TX настраивается отдельный поток. Обратите внимание, что по линии RX данные копируются из устройства в память, а при TX данные копируются из памяти в устройство.
Hi, Neat post. There is a problem along with your website in internet explorer, would test this텶E still is the market chief and a good section of other folks will pass over your magnificent writing due to this problem.
Thanks for the message! In the near future, we will switch to a new template, where we will try to fix existing problems.