stm32f103cbt6串口波特率是否支持自适应?传输格式为N,8,1;波特率从9600-115200;实现接收外部串口数据波特率自适应?接收的外部数据,格式是固定的,但是波特率不同,是否有好的解决方案?谢谢。
可以靠软件去做,而且需要收发双方约定好。
首先指定好9600-115200之间的哪几个波特率被用于通讯,接收机接收到数据后,若解码发现数据不对,切换成下一种约定波特率进行接收,直到找到对应波特率,实现正常通讯。或所有约定波特率都尝试完成,无法通讯,切换回默认波特率。
其实不难,开机后初始化成某一波特率,然后开始接收数据,如果一段时间内接收到有正确的数据,那么就不再变化波特率,保持当前波特率进行通信。不然软件就开始调整波特率,再开始接数据,如果一段时间后仍未接收到正确的数据,那么就继续变化波特率,直到正确接收到数据为止
对方要持续发送生命报文。
本机设置不同波特率尝试接收数据,一旦收到正确数据后,锁定设置。并向对方发送响应。
双方才握手成功,然后进入正常通讯阶段