/*packet received interrupt occured*/
//判断是否是数据包已经被正确接收。
if( (ItStatus1 & 0x02) == 0x02 )
{
//数据判断处理 length = SpiReadRegister(0x4B); 。。。。。
}
//reset the RX FIFO
SpiWriteRegister(0x08, 0x02); //write 0x02 to the Operating Function Control 2 register
SpiWriteRegister(0x08, 0x00); //write 0x00 to the Operating Function Control 2 register
RFSetRxMode();
}
}
********************************************************
现在问题是:每次按下按键后发送模块显示发送成功,接收模块也能接收产生NIRQ中断信号(即运行到了:中断来了....),但是ItStatus1为0,不能进入if数据处理。每次按键发送数据,接收模块都能正常产生中断信号,不知道问题出现在哪里?求高手指点!!!
看看你 RFSetIdleMode(); 是否正常返回 ItStatus1 变量。 我估计你在RFSetIdleMode()清中断的时候也把ItStatus1 赋值了。 你可以在 RFSetIdleMode()把 读到的中断 return出来。 我不知道你用的哪里的程序不过我推荐你用 官方提供的那套。