如何在STM32F103C8T6中使用HAL_UART_Transmit()配置用于传输数据的波特率?

时间:2019-05-06 11:28:53

标签: stm32 putty uart stm32cubemx

我正在使用STM32F103C8T6板和CubeMX生成代码。我使用函数HAL_UART_Transmit()通过UART传输数据。我在CubeMX中将波特率配置为9600,在Putty中也将速度选择为9600。仍然我只有一些垃圾值。如何同步我的数据传输?

先谢谢了。

3 个答案:

答案 0 :(得分:0)

我尝试了同样的方法,并使其起作用。请确保所有其他传输设置相同,然后检查您的代码。 我的设置是: 模式:异步 硬件流控制:禁用 波特率:9600 字长:8位 奇偶校验:无 停止位:1 数据方向:接收和发送 过度采样:16个采样

它看起来像这样: STM32CubeMX parameters

在腻子中确保您有 速度:9600; 数据位:8 停止位:1 奇偶校验:无 流量控制:无 匹配设置! 看起来像这样:

PuTTY configuration

我将“ Hello World”发送到PuTTY控制台的代码通常是:

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

确保     #include“ string.h” 使用strlen()

我希望这会有所帮助,请确保您不要错过任何东西:)

答案 1 :(得分:0)

USART1 -> BRR = USART_CLOCK / BAUD;

答案 2 :(得分:0)

您是否将GND引脚从开发板连接到UART适配器?

因为如果您确实调用了生成的初始化函数CubeMX,它应该可以工作。您的垃圾值似乎比波特率更重要。