Найти тему

STM32+UART.HAL

Оглавление

В прошлый раз (тык!) мы с помощью STM32CubeMx настроили интерфейс UART. Сейчас очень кратко опишем, как им пользоваться. Сам интерфейс UART очень прост в использовании. Он спроектирован для работы в режиме устройство-устройство, в нем нет возможностей для подключения нескольких slave.

Отправка данных по UART

Следующая команда отправляет данные.

HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Переменные:
1. Указатель на структуру UART
2. Массив отправки данных
3. Размер массива
4. Максимальное время ожидания при проверке условий отправки данных (указывается в мс)
Возвращает: результат выполнения команды, HAL_OK -- успешное выполнение

Результат отправки данных:

Видно, что скорость отправки данных по UART ниже чем по I2C. Baudrate 115200
Видно, что скорость отправки данных по UART ниже чем по I2C. Baudrate 115200

Пример:

HAL_UART_Transmit(&huart2, (uint8_t*)"Hello", 5, 10);

Получение данных по UART

Команда получения данных

HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Переменные:
1. Указатель нас структуру UART
2. Массив, в который будут записываться данные
3. Размер массива
4. Максимальное время ожидания при проверке условий отправки данных (указывается в мс)
Возвращает: результат выполнения команды, HAL_OK -- успешное выполнение

Заключение

Работа с UART через библиотеку HAL очень просто. Ничего не надо инициализировать, все делает Куб на автомате.

Готовый проект здесь.

Лайк?