0

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

提前致谢..

4

3 回答 3

0

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

它看起来像这样: STM32CubeMX 参数

在腻子中确保你有速度: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()

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

于 2019-05-09T16:14:18.967 回答
0

您是否将电路板上的 GND 引脚连接到您的 UART 适配器?

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

于 2019-05-14T10:43:25.140 回答
0

USART1 -> BRR = USART_CLOCK / BAUD;

于 2019-05-09T21:18:39.333 回答