一、简介
KT6368A再被连接之后,AT命令会被透传出去。被透传的这组AT命令是符合文档要求,不应被透传,实际却经常被透传。并且可以每次都复现
- 详细描述
有问题部分的串口数据监控结果如下:其中41 54 2B 42 4D 46 30 41 46 42 43 33 42 43 30 42 46 0D 0A ,是一个标准的AT指令。按道理不会被透传才对。如下图:
好的,经过配合客户调试之后,得到了问题所在,如下图:
最后的问题分析:
- 客户发送的“41 54 2B 42 4D 46 30 41 46 42 43 33 42 43 30 42 46 0D 0A”指令完全没问题
- 问题就在于客户不是一次性发出去的。被当成了2包数据发出了
- 而KT6368A在处理串口来的数据,是按照当前包来处理的,蓝牙芯片串口接收,有两个中断
==》中断1:超时中断,就是多久没有接收到数据,就认为这一帧数据完毕了,中断,再去分析
一般这个超时中断,都是设置为10ms的样子。
==》中断2:长度中断,计入接收到256个字节,就中断,数据被取走,同时继续收数据
- 假如客户先发送了“41 54 2B 42 4D 46”,等个几ms在发送剩余的“30 41 46 42 43 33 42 43 30 42 46 0D 0A”,这样表面看起来是按照规则来发的。实际上蓝牙芯片在接接收的时候
就产生了2次超时中断1,就认为数据不合理,所以给透传出去了