我正在使用STM32F103C8T6板和CubeMX生成代码。我使用函数HAL_UART_Transmit()通过UART传输数据。我在CubeMX中将波特率配置为9600,在Putty中也将速度选择为9600。仍然我只有一些垃圾值。如何同步我的数据传输?
先谢谢了。
答案 0 :(得分:0)
我尝试了同样的方法,并使其起作用。请确保所有其他传输设置相同,然后检查您的代码。 我的设置是: 模式:异步 硬件流控制:禁用 波特率:9600 字长:8位 奇偶校验:无 停止位:1 数据方向:接收和发送 过度采样:16个采样
它看起来像这样: STM32CubeMX parameters
在腻子中确保您有 速度:9600; 数据位:8 停止位:1 奇偶校验:无 流量控制:无 匹配设置! 看起来像这样:
我将“ 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,它应该可以工作。您的垃圾值似乎比波特率更重要。