在使用USART1发送数据时,若波特率设置为115200,偶尔会出现数据丢失

[复制链接]
207|6
内政奇才 发表于 2025-11-19 16:34 | 显示全部楼层 |阅读模式
GD32F103C8T6在使用USART1发送数据时,若波特率设置为115200,偶尔会出现数据丢失,但降低到9600后正常,是缓冲区溢出还是时钟精度问题?
classroom 发表于 2025-11-20 16:10 | 显示全部楼层
核心原因是时钟精度不足导致波特率偏差累积
cr315 发表于 2025-11-20 16:11 | 显示全部楼层
时钟源选择建议优先使用外部晶体振荡器,精度可达±10ppm~±50ppm,适合工业级应用。
duo点 发表于 2025-11-20 17:11 | 显示全部楼层
启用DMA传输,通过DMA自动搬运数据,减少CPU干预,验证是否仍丢失数据。
flycamelaaa 发表于 2025-11-20 18:12 | 显示全部楼层
用外部晶体振荡器,并配置PLL提升至72MHz
jcky001 发表于 2025-11-20 19:12 | 显示全部楼层
建议晶振靠近MCU,走线短且远离高频信号,添加去耦电容提升电源稳定性。
onlycook 发表于 2025-11-20 20:13 | 显示全部楼层
动态校准波特率,若对端波特率未知或存在漂移,可通过检测起始位下降沿和第8个边沿计算实际波特率,动态调整本地寄存器。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

222

主题

1424

帖子

1

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