初级会员
- 积分
- 104
- 金钱
- 104
- 注册时间
- 2013-6-17
- 在线时间
- 7 小时
|
最近调试NRF的中断接收和中断发送,经过调试之后已经通过了!!但是后面发现一个问题就是在中断接收的函数加入<br />
NRF24L01_Read_Buf(RD_RX_PLOAD,tmp_buf,RX_PLOAD_WIDTH);//读取数据,这句话之后到主函数中原来的延时就变成了现在延时的十分之一,就是说原先如果延时50ms现在延时的时间大约就变成了500ms左右,如果不加这句读取数据的话,延时很正常,不知道什么原因,特来向大家求助下!!<br />
中断函数代码是:<br />
u8 t,sta=0; <br />
sta=NRF24L01_Read_Reg(STATUS); //读取状态寄存器的值 <br />
NRF24L01_Write_Reg(WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中断标志<br />
EXTI->R=1<<5; <br />
if(sta&RX_OK)//接收到数据<br />
{<br />
<br />
for(t=0;t<20;t++)<br />
{<br />
delay_ms(50);<br />
LED0=!LED0;<br />
} <br />
//NRF24L01_Read_Buf(RD_RX_PLOAD,tmp_buf,RX_PLOAD_WIDTH);//读取数据<br />
NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除RX FIFO寄存器 <br />
}<br />
EXTI->R=1<<5; //清除LINE5上的中断标志位*/ <br /> |
|