[STM32F7] 仅发送模式、软件实现的 3M波特率的串口有时会发出乱码

[复制链接]
375|57
macpherson 发表于 2026-9-11 09:25 | 显示全部楼层
波特率设置是否正确?              
linfelix 发表于 2026-9-11 13:08 | 显示全部楼层
暂时降低波特率观察是否仍有乱码,若乱码消失,说明问题出在高速时钟精度或信号完整性,需重点优化时钟和布线。
班杰明 发表于 2026-9-11 15:07 | 显示全部楼层
检查GPIO速度等级,用HIGH而不是LOW,确保位翻转时间足够。同时优化outputByte函数,减少不必要的BSRR寄存器写入次数。
qiufengsd 发表于 2026-9-11 15:50 | 显示全部楼层
STM32F373的USART硬件外设非常强大,支持小数波特率发生器。不建议用纯软件方式跑3Mbps,因为代价太大。
beacherblack 发表于 2026-9-11 17:10 | 显示全部楼层
如何用STM32F373VC的TIM1+DMA实现3M软串口
maqianqu 发表于 2026-9-11 19:59 | 显示全部楼层

如何用DWT->CYCCNT做周期级定时?需要特别注意哪些点?
gygp 发表于 2026-9-11 20:58 | 显示全部楼层
在发送一整个字节的期间,必须关闭全局中断。
minzisc 发表于 2026-9-12 11:10 | 显示全部楼层
如果连接多个接收端,负载电容会显著增大,可能需要降低波特率或加总线缓冲器
averyleigh 发表于 2026-9-12 13:12 | 显示全部楼层
使用轮询时强制等待TXE标志,避免数据覆盖;中断模式下确保发送完成中断触发后再发送新数据。
LightCatcher 发表于 2026-9-12 14:45 | 显示全部楼层
降低波特率确实是个好办法,同时检查中断优先级和GPIO速度等级,确保位周期准确。你试试降低波特率到1M,同时把GPIO速度等级调到更高,看看是否稳定。
primojones 发表于 2026-9-12 17:19 | 显示全部楼层
避免 TX 线与大电流走线或开关电源走线平行布线
adolphcocker 发表于 2026-9-12 18:23 | 显示全部楼层
如何用示波器测量串口实际波特率?
plsbackup 发表于 2026-9-12 20:17 | 显示全部楼层
启用外部晶振HSE,并配置PLL得到精准的72MHz系统时钟。切记不要使用HSI,HSI在温度变化时频率漂移,是导致“时好时坏、偶尔乱码”的常见元凶。
云上漫步 发表于 2026-9-14 10:13 | 显示全部楼层
检查GPIO速度等级,升级到更高速度,同时优化BSRR寄存器写入,减少写入次数,确保位时序稳定。
CarterERO 发表于 2026-9-15 17:14 | 显示全部楼层
看看你的GPIO配置,速度等级设置过低,3M波特率下确实有问题。试试将GPIO的速度提升到更高的等级,比如GPIO_SPEED_50MHz。
WhisperingTrees 发表于 2026-9-16 16:09 | 显示全部楼层
检查GPIO速度等级,用GPIO_SPEED_FREQ_HIGH,确保位翻转时间足够。同时优化outputByte函数,减少BSRR写入次数,避免时序抖动。
流星flash 发表于 2026-9-16 18:39 | 显示全部楼层
优化电路设计,减少信号干扰,提高系统稳定性。
风之呢喃 发表于 2026-9-17 12:55 | 显示全部楼层
你的问题,我之前也遇到过。降低波特率到1M试试,检查GPIO速度等级和中断配置,还有BSRR寄存器的写操作次数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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