UART在异常波特率下接收到错误数据
最近在做一个串口的通信协议,配置好模块功能并测试,串口收发功能正常。但是在跟主机进行通讯时出现问题,萎了兼容设备,主机有波特率识别功能,会从发出不同波特率的握手序列,从机收到正确序列后进行应答。前期测试功能阶段肯定是使用的正确的速率,因此收发数据都正常。在连接主机的情况下,从正确速率下确实能收到正确的握手序列数据,但是在其他速率下也会收到数据,这些数据要么是数值错误的,要么是奇偶校验失败。其中奇偶校验失败的次数众多。而一旦发生奇偶校验失败,后面的协议就会终止当前的解析,抛弃所有数据等待新数据的到来。正因为如此,后面的应答序列也发布出去,一直走不到这一步。
想问问大家的串口是不是也有这种情况?是否只在正确速率下才能收到数据?而我这种情况又要如何解决? 接收不正确,更改不同的波特率,直到能接收正确为止 波特率错误也能收到数据,只是数据不对而已。 自适应的话,奇偶校验之类的得一样才行吧 这么弄,变量好多啊,很容易出问题啊 其实不如固定一下奇偶校验和停止位位数等等 串口自适应的话是一直发一个标准的固定的数据,对方收到之后才能确认数据 我觉得你还是别做自适应了,你这设备都自己的,统一一下不就好了么 如果校验位和停止位都不一样,那没得兼容哈 你兼容不就是波特率么,如果停止位都不一样,那咋弄啊 我的串口没有这种问题,都是除了波特率不一样,其他都一直才行 奇偶校验之类的就固定呗 确实,你要是这么设计的话,兼容不了,也做不到自适应
页:
[1]