USART

STM32.USART Использование StdPeriph_Lib

Для работы с USART в библиотеке имеются файлы stm32f10x_usart.c и stm32f10x_usart.h

Рассмотрим некоторые основные функции.

void USART_Init ( USART_TypeDef * USARTx, USART_InitTypeDef  USART_InitStruct )

Данная ф-я выполняет инициализацию выбранного модуля USART. Номер модуля задается первым аргументом(USARTx), который может принимать следующие значения: USART1, USART2, USART3, USART4 или USART5. Второй аргумент – указатель на инициализационную структуру. Она имеет следующий вид:

 

STM32.USART Использование DMA

Если вам нужно передавать (или принимать) через USART массыв данных, тогда есть смысл использовать DMA.

USART1 «сидит» на контроллере DMA1: передатчик можно подключить к четвертому каналу, а приемник — к пятому.

Настроим прием и передачу данных с использованием DMA. Прием будет осуществляться в массив RxBuff[64], передача — из массива TxBuff[64].

Создаем функцию-обработчик прерываний DMA канала 4:

STM32.USART Работа с прерываниями

Для работы с прерываниями необходима функция-обработчик. Модуль USART имеет одну такую функцию.

То есть, какое бы событие не вызвало прерывание, вызывается одна и та же функция.

Причину прерывания можно определить, проверив соответствующие флаги.

Функция имеет следующий вид:

STM32.USART Инициализация модуля

Мы уже рассмотрели регистры приемопередатчика, а теперь попробуем соединить все это воедино, и выполнить инициализацию модуля применительно к конкретной задаче. Итак, необходимо настроить USART1 для связи с ПК. Скорость обмена 9600, длина слова 8 бит, 2 стоп бита, без контроля паритета, частота тактового сигнала 24 MHz.

Для начала включим тактирование:

STM32.USART Назначение регистров

В контроллерах STM32 для настройки каждого модуля USART и работы с ними имеется по 7 регистров:

STM32.USART Введение

Зачем необходим USART? Для «цивилизованной» связи с внешним миром, например, с ПК или с другим контроллером.

Преимущества USARTa — простота использования (по сравнению, например, с USB) и надежность работы.

Недостаток — на современных ПК отсутствует СОМ-порт, но это решается путем использования виртуального.