[STM32F1] STM32串口输出乱码

[复制链接]
5506|57
 楼主| tifmill 发表于 2024-5-30 08:00 | 显示全部楼层 |阅读模式
原因一:

初始化串口的波特率与串口调试助手不一致。



原因二:

晶震不一致。

串口输出始终乱码,外部时钟频率配置错误导致的,库使用默认8MHz晶震,可以通过宏使用25MHz晶震。具体定义在 stm32f10x.h 文件中

开发板晶震使用的12MHz晶震,定义一个宏修改成12000000,编译,烧写。



#if !defined  HSE_VALUE
#ifdef STM32F10X_CL   
  #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#else
  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* STM32F10X_CL */
#endif /* HSE_VALUE */
1.
2.
3.
4.
5.
6.
7.


修改为:



#define HSE_VALUE    ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
#if !defined  HSE_VALUE
#ifdef STM32F10X_CL   
  #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#else
  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* STM32F10X_CL */
#endif /* HSE_VALUE */
1.
2.
3.
4.
5.
6.
7.
8.



abotomson 发表于 2024-6-4 10:25 | 显示全部楼层
如果发送端和接收端的波特率设置不一致,就会导致传输数据时出现乱码。
i1mcu 发表于 2024-6-4 13:08 | 显示全部楼层
如果发送缓冲区满了,新的数据可能无法及时发送出去,导致乱码。确保发送缓冲区的大小足够大,或者在数据发送之前等待缓冲区空闲。
biechedan 发表于 2024-6-5 13:39 | 显示全部楼层
如果发送的数据量超过了串口的缓冲区大小,可能会导致数据丢失或乱码。
macpherson 发表于 2024-6-7 13:01 | 显示全部楼层
如果使用中断或DMA来处理串口数据,确保相关的配置是正确的。解决方法是检查并修复中断和DMA的配置问题。
tabmone 发表于 2024-6-8 10:20 | 显示全部楼层
检查代码中可能的逻辑错误。              
maudlu 发表于 2024-6-8 15:17 | 显示全部楼层
使用的串口输出函数正确实现,并且与串口配置相匹配。
pixhw 发表于 2024-6-8 19:37 | 显示全部楼层
发送端和接收端的波特率设置不一致会导致数据传输错误,进而产生乱码。确保两端波特率相同。
burgessmaggie 发表于 2024-6-9 12:31 | 显示全部楼层
配置与STM32上的串口配置相匹配。例如,波特率、数据位、停止位、奇偶校验等参数应该相同。
loutin 发表于 2024-6-10 16:53 | 显示全部楼层
波特率决定了串口数据传输的速度,如果两端设置不匹配,接收端就无法正确解析数据。
backlugin 发表于 2024-6-10 21:14 | 显示全部楼层
在STM32中,可以通过设置USART的波特率寄存器来配置波特率。
gouguoccc 发表于 2024-6-10 22:27 来自手机 | 显示全部楼层
波特率不一致或配置错误,
zerorobert 发表于 2024-6-11 17:16 | 显示全部楼层
发送端和接收端的波特率设置不一致是最常见的原因。
iyoum 发表于 2024-6-11 20:24 | 显示全部楼层
串口的配置正确,包括波特率、数据位、停止位、奇偶校验等参数。在STM32上,可以使用HAL库或者标准的CMSIS库来配置串口。
plsbackup 发表于 2024-6-12 20:51 | 显示全部楼层
如果STM32的外部时钟晶振频率与代码中设置的频率不一致,也会导致串口输出乱码。需要检查开发板上的晶振规格,并与代码中的设置进行核对调整
laocuo1142 发表于 2024-6-13 14:36 | 显示全部楼层
比特率(波特率)设置错误
flycamelaaa 发表于 2024-6-13 16:00 | 显示全部楼层
串口配置参数不匹配
stormwind123 发表于 2024-6-13 19:00 | 显示全部楼层
中断处理程序错误
probedog 发表于 2024-6-13 20:00 | 显示全部楼层
STM32等微控制器的供电波动也可能导致串口通信错误。
classroom 发表于 2024-6-13 21:23 | 显示全部楼层
如果开发板的晶振频率和标准库默认频率不一致,也可能导致串口通信错误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

1633

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部