| 
 
初级会员 
 
	积分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); //清除标志
 }
 }
 接收我是用的中断
 | 
 |