联系方式
地 址:深圳市龙岗区南湾街道平吉大道1号建昇大厦B栋1605号(李朗软件园对面)
联系人:周工
电 话:0755-88820678
传 真:
信 箱:498187676@qq.com
STM32F0的 USART自动识别问题

一. 前言
某客户用STM32F051的芯片做了一个自动波特率的实验(代码是仿照ST库里面的例子写的),用串口发送数字键的ASCII码,在接收端只有奇数ASCII被确认。。
二.分析
客户使用的是MDK编译,版本是4.72,观察了一下数据,没有被自动识别的都是bit 0为0的数据,客户例程中发送的数据为【a,a,b,b,c,c,d,d,e,e,f,f】。

三. 解决方法
关于USART波特率自动检测的问题,查看了参考手册后发现。


当使用自动检测模式0时,USART会通过测试起始位来检测波特率,起始位是低电平,这要求数据帧在起始位之后的数据位必须为高,即需要传输的数据第一位为1,客户的代码在每次接受一个字符后都会重新检测波特率,那么在发送偶字符时检测出来的波特率为错误的,数据接收出错。

 

返回顶部