STM32F4软件复位后串口第一位丢失或者乱码

2019-07-21 04:58发布

使用STM32F405时串口的第一位会丢失,后来发现网上很多朋友遇到过,基本都是添加while ((USART1->SR & 0x40) == 0);或者读USART1->SR可以解决。我在F1上面试过可行,波特率为923076。后来使用STM32F405,波特率在3000000,也是第一位丢失,读SR后硬件复位第一位是正常的,但是使用软件复位后第一位又不正常了,不是丢失就是乱码,以后的都是正常的。波特率降到115200时软件复位也正常,试过923076、2000000、3000000时都是硬件复位正常,软件复位不正常,但是除了第一位以外以后发的数据全是正确的。请教一下有没有在维持3000000波特率情况下使用软件复位也正常的方法?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-21 08:23
没搞这么高波特率.
你怎么要用这么高的波特率啊?
天才少年
2楼-- · 2019-07-21 09:50
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-21 12:18
回复【3楼】天才少年:
---------------------------------
额,这样波特率太高了.容易出错哦.
天才少年
4楼-- · 2019-07-21 14:52
测试了很多数据,后面的都不会错,我还是先发几个空格吧。
回复【5楼】天才少年:
---------------------------------
尝试软复位后延时等待复位寄存器置位

一周热门 更多>