姜俊尚 发表于 2019-7-17 11:04:06

关于stm32f103cbt6串口波特率自适应

stm32f103cbt6串口波特率是否支持自适应?传输格式为N,8,1;波特率从9600-115200;实现接收外部串口数据波特率自适应?接收的外部数据,格式是固定的,但是波特率不同,是否有好的解决方案?谢谢。

Cinderella6 发表于 2019-7-17 14:21:19

单片机本身不支持。
可以靠软件去做,而且需要收发双方约定好。

sylar.z 发表于 2019-7-18 10:57:17

本帖最后由 sylar.z 于 2019-7-18 10:58 编辑

首先指定好9600-115200之间的哪几个波特率被用于通讯,接收机接收到数据后,若解码发现数据不对,切换成下一种约定波特率进行接收,直到找到对应波特率,实现正常通讯。或所有约定波特率都尝试完成,无法通讯,切换回默认波特率。

zhang7309 发表于 2019-7-18 14:08:40

硬件不支持,软件设计一下

weiwei4 发表于 2019-7-18 15:31:01

格式固定,是否有指令头,校验,是否固定时间间隔/频率 发送 呢?
其实不难,开机后初始化成某一波特率,然后开始接收数据,如果一段时间内接收到有正确的数据,那么就不再变化波特率,保持当前波特率进行通信。不然软件就开始调整波特率,再开始接数据,如果一段时间后仍未接收到正确的数据,那么就继续变化波特率,直到正确接收到数据为止

ldptest 发表于 2019-7-18 18:17:35

光有本机也不行,对方也要有相应机制,
对方要持续发送生命报文。
本机设置不同波特率尝试接收数据,一旦收到正确数据后,锁定设置。并向对方发送响应。
双方才握手成功,然后进入正常通讯阶段

姜俊尚 发表于 2019-8-6 13:42:33

明白了,谢谢大家

bird0123 发表于 2019-8-6 14:02:05

谢谢分享
页: [1]
查看完整版本: 关于stm32f103cbt6串口波特率自适应