zigbee接收数据的时候出现超时中断,怎么破????
我用的是M0芯片,zigbee与SC16IS752IPW(spi总线)芯片相连接,每次都要从总线上读取数据,但是自从我手贱,改了代码的一个地方的之后,每次接收数据都是产生超时中断,读IIR寄存器值是12(超时中断),但是当我用串口调试工具发送17个字节时,超时中断终于消失了,但是我不知道为什么。
求高手给解释一下,什么是超时中断,什么条件会产生超时中断,或给点意见建议,在网上查了好长时间也没见到有解释的。希望高手给点解释!!!!!万分感谢!!!
[解决办法]
IIR为只读寄存器,Bit6:7用来指示FIFO的状态,均为0时则无FIFO,此时为8250或16450芯片,为01时有FIFO但不可以使用,为11时FIFO有效并可以正常工作。Bit3用来指示超时中断(16550/16750)。
spi总线和IIR有关?是用232操作的吧
有没有做串口超时时间的配置?
PC机与单片机的通讯
[解决办法]
超时中断,这个事串口接收数据里面的一个中断,定义是超过3-5个相邻数据接收时间,认为触发了超时中断。
这个概念可以引出到其它地方,比如我调试RF通信的时候,设置一个主机A,一个从机B,通信协议是握手方式,A发送信息给B,B接收到验证通过回复一个ACK给A,如果在A发出信息一定时间(个人定义)没有接收到ACK,认为这就是一个超时中断,需要处理。
感觉楼主遇到的问题像是SPI接收数据的超时中断,可以看看寄存器配置,禁止这个中断,或者修改超时中断的时间。