最近在做一个串口的通信协议,配置好模块功能并测试,串口收发功能正常。但是在跟主机进行通讯时出现问题,萎了兼容设备,主机有波特率识别功能,会从发出不同波特率的握手序列,从机收到正确序列后进行应答。
前期测试功能阶段肯定是使用的正确的速率,因此收发数据都正常。在连接主机的情况下,从正确速率下确实能收到正确的握手序列数据,但是在其他速率下也会收到数据,这些数据要么是数值错误的,要么是奇偶校验失败。其中奇偶校验失败的次数众多。而一旦发生奇偶校验失败,后面的协议就会终止当前的解析,抛弃所有数据等待新数据的到来。正因为如此,后面的应答序列也发布出去,一直走不到这一步。
想问问大家的串口是不是也有这种情况?是否只在正确速率下才能收到数据?而我这种情况又要如何解决? |