STM32如何实现波特率自适应(通过一个键盘来控制STM32单片机做成的设备,因为我键盘的波特率有好几种)

如题所述

第1个回答  推荐于2016-02-29
所谓串口的波特率自适应,如果你的键盘是发送固定格式的报文,那么需要进行波特率检测,就是把所有波特率全部试一遍,得到那个固定格式的报文的就是应该有的波特率。
按照这个思路去写程序,不然你做不到波特率自适应。当然也许你会想到更好的算法。
另外一个办法是让键盘发一个带有0和1的报文序列。这样通过判断脉冲宽度也可以得到波特率,不过这个办法复杂了点。追问

键盘里有许多种协议码,其中有一种协议码为:0XFC 0XFF 0XDD 没有固定的格式,我的初步想法是通过判断第一个字节来计算波特率,可是我不知道如何一位一位的接收,要是知道了后我就可以通过算出一位所需的时间就是波特率了,不过这之间还牵扯到许多算法,你能告诉我单片机串口如何一位一位的接收数据吗?谢谢……

本回答被提问者采纳
第2个回答  2011-12-06
程序做好每种波特率,通过协议自适应扫描追问

你这种方法对有特定的一个字节来检测波特率时有用,但对一上电就发一串不知道的字符串时就不行了吧?请说的详细点,谢谢!

相似回答