|
你们好:
条件:一个发射,一个接收。。。发射是3秒发射一次。。
然后调试接收。。。。
问题:
在调试NRF24L01的时候,发现中断都进不了?
有时候掉电后在开,偶尔有几次进入中断,然后再也不进了。。
用示波器看IRQ波形,一直是低电平。。。。(选择的是下降沿触发中断)。
中断处理函数中也清标志了:(中断函数)
sta=SPI_Read(STATUS); // read register STATUS's value
if((sta&0x40)==0x40) // if receive data ready (RX_DR) interrupt
{
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer
flag=1;
}
if((sta&0x10)==0x10)
{
SPI_RW_Reg(FLUSH_TX,0);
}
SPI_RW_Reg(WRITE_REG+STATUS,sta);// clear RX_DR or TX_DS or MAX_RT interrupt flag
。
通过读
test=SPI_Read(READ_REG+FIFO_STATUS); // read register STATUS's
读出的值0X12 说明:RX接收寄存器是满的,进行了多次重发中断(我已经在程序CONFIG内把重发中断关闭了)。
如用查询的方法:读取STATUS的中断标志的话,接收的正确的几率很大。。。但是持续1个小时后。。。就出现错误而且不能恢复,重新上电又正常。。
请把你们的经验告诉我们。。。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|