Найти в Дзене

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 -- успешное выполнение Результат отправки данных: Пример: 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
Оглавление

В прошлый раз (тык!) мы с помощью 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 очень просто. Ничего не надо инициализировать, все делает Куб на автомате.

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

Лайк?