初级会员
- 积分
- 62
- 金钱
- 62
- 注册时间
- 2017-12-8
- 在线时间
- 9 小时
|
楼主 |
发表于 2018-1-23 21:07:05
|
显示全部楼层
void EXTI9_5_IRQHandler(void)
{
u8 istatus;
//判断是否是线路8引起的中断
if (EXTI_GetITStatus(EXTI_Line8)==SET)
{
if(GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_8)==0){
istatus=NRF24L01_Read_Reg(STATUS); // 读取状态寄存其来判断数据接收状况
nrf_flag=istatus;
if(istatus&0x40){//bit6:数据接收中断
NRF24L01_Read_Buf(RD_RX_PLOAD,tmp_buf,RX_PLOAD_WIDTH);//读取数据
NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除RX FIFO寄存器
}
else if((istatus&0x10)>0){////达到最大发送次数中断
NRF24L01_Write_Reg(FLUSH_TX,0xff);//清除TX FIFO寄存器
NRF24L01_RX_Mode(); //发送结束,转为接收状态。
}
else if((istatus&0x20)>0){//TX发送完成中断
NRF24L01_Write_Reg(FLUSH_TX,0xff);//清除TX FIFO寄存器
NRF24L01_RX_Mode(); //发送结束,转为接收状态。
}
NRF24L01_Write_Reg(NRF_WRITE_REG+STATUS,istatus);//清除状态寄存器
}
EXTI_ClearITPendingBit(EXTI_Line8); //清除标志
}
}
接收我是用的中断 |
|