STM32
直播中

李斌

7年用户 1404经验值
私信 关注
[问答]

STM32H5使用CUBEMX配置串口时钟,输出乱码的原因?

昨天收到了官方发出的**NUCLEO-H563**板子,打算先测试下串口。之前玩过F429,也就直接在CUBE MX配置生成代码了。测试时发现,全是乱码。最后发现问题出在`USART3 Clock Mux`-串口时钟选择器,默认选择的是`pclk1`,选择其他就不会出现乱码。按说USART3的确是挂载APB1上的,为什么选择`pclk1`就会出现乱码啊?USART2也试过了,也是同样的情况。

回帖(1)

duke刘

2024-7-3 17:04:55
在使用STM32H5系列的NUCLEO-H563开发板进行串口通信时,出现乱码的原因可能有以下几点:

1. **时钟配置问题**:在CUBEMX中,USART的时钟来源可以选择PCLK1或PCLK2。如果选择了错误的时钟源,可能会导致串口通信速率不匹配,从而产生乱码。你提到选择其他时钟源可以解决问题,这可能是因为默认的PCLK1配置不正确。

2. **波特率设置问题**:确保在CUBEMX中设置的波特率与你的串口助手或串口终端工具中的波特率一致。如果两者不匹配,也可能导致乱码。

3. **串口初始化问题**:检查生成的代码中,串口初始化部分是否有误。例如,确保正确的配置了串口的模式(如USART_MODE_TX或USART_MODE_RX)、字长、停止位和奇偶校验等参数。

4. **硬件连接问题**:检查开发板上的串口连接是否正确,确保TX和RX引脚没有接错或短路。

5. **电源问题**:确保开发板的电源稳定,电压波动可能会影响串口通信的稳定性。

6. **固件问题**:如果以上都检查过没有问题,可能是固件或库文件的问题。可以尝试重新生成代码或更新固件库。

7. **串口助手或串口终端工具设置问题**:确保使用的串口助手或串口终端工具的设置正确,包括波特率、数据位、停止位和奇偶校验等。

解决这个问题的步骤如下:

1. 在CUBEMX中,重新配置USART3的时钟来源,选择一个不同的时钟源,如PCLK2。
2. 确保波特率设置正确,与你的串口助手或串口终端工具中的设置一致。
3. 检查串口初始化代码,确保所有参数配置正确。
4. 检查硬件连接,确保TX和RX引脚正确连接。
5. 如果问题仍然存在,尝试重新生成代码或更新固件库。
6. 检查串口助手或串口终端工具的设置,确保与STM32的配置一致。

通过以上步骤,你应该能够找到并解决乱码问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分