Как настроить скорость передачи данных для передачи данных с помощью HAL_UART_Transmit () в STM32F103C8T6? - PullRequest
0 голосов
/ 06 мая 2019

Я использую плату STM32F103C8T6 и CubeMX для генерации кода. Я передаю данные через UART, используя функцию HAL_UART_Transmit (). Я настроил скорость передачи 9600 в CubeMX и также выбрал скорость 9600 в Putty. Тем не менее, я получил только некоторые ненужные значения. Как синхронизировать мою передачу данных?

Заранее спасибо ..

Ответы [ 3 ]

0 голосов
/ 10 мая 2019

USART1 -> BRR = USART_CLOCK / BAUD;

0 голосов
/ 14 мая 2019

Вы подключили контакт GND от платы к адаптеру UART?

Потому что это должно работать, если вы вызвали функцию init fuction CubeMX. Ваши нежелательные значения кажутся более связанными с этим, чем скорость передачи.

0 голосов
/ 09 мая 2019

Я попробовал то же самое, и он заработал.Пожалуйста, убедитесь, что все остальные параметры передачи совпадают, и проверьте свой код.Мои настройки: Режим: Асинхронное аппаратное управление потоком: Отключить Скорость передачи: 9600 Длина слова: 8 Биты Четность: Нет Стоп-биты: 1 Направление данных: Прием и передача через сэмплирование: 16 выборок

Это выглядит так: STM32CubeMX параметры

В Putty убедитесь, что у вас есть Скорость: 9600;Биты данных: 8 Стоповые биты: 1 Четность: нет Контроль потока: нет, чтобы соответствовать настройкам!Выглядит это так:

Конфигурация PuTTY

В последнее время мой код для отправки "Hello World" на консоль PuTTY:

char* msg2 = "Hello World\n\r";
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, msg2, strlen(msg2), 100);

makeОбязательно #include "string.h", чтобы использовать strlen ()

Надеюсь, это поможет, убедитесь, что вы ничего не пропустите:)

...