使用STM32F405时串口的第一位会丢失,后来发现网上很多朋友遇到过,基本都是添加while ((USART1->SR & 0x40) == 0);或者读USART1->SR可以解决。我在F1上面试过可行,波特率为923076。后来使用STM32F405,波特率在3000000,也是第一位丢失,读SR后硬件复位第一位是正常的,但是使用软件复位后第一位又不正常了,不是丢失就是乱码,以后的都是正常的。波特率降到115200时软件复位也正常,试过923076、2000000、3000000时都是硬件复位正常,软件复位不正常,但是除了第一位以外以后发的数据全是正确的。请教一下有没有在维持3000000波特率情况下使用软件复位也正常的方法?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你怎么要用这么高的波特率啊?
---------------------------------
额,这样波特率太高了.容易出错哦.
---------------------------------
尝试软复位后延时等待复位寄存器置位
一周热门 更多>