📄 nrf2401_receive.c
字号:
#include "nRF2401_Personal.h"
#define LED P2_0 //P2.0接LED灯,测试对接收数据的校验
#define Signal_A P2_2
#define Signal_B P2_4
#define L_Key P2_5
#define M_Key P2_6
#define R_Key P2_7
#define XLay_L P3_4
#define XLay_R P3_5
#define YLay_U P3_6
#define YLay_D P3_7
volatile bit Ready_Idle=0; //准备处理位
//void TestLED(uchar n)
//{
// uchar i;
// for(i=0;i<n;i++)
// {
// LED=1;
// delayUS(20000);
// LED=0;
// delayUS(20000);
// }
//}
void Receive_Idle(void)
{
if(Ready_Idle)
{
switch(RxBuf[0])
{
case 0x23: //原本发送 0x12 ,测试OK
// TestLED(1);
L_Key=~L_Key;
break;
case 0x34:
// TestLED(2);
M_Key=~M_Key;
break;
case 0x45:
// TestLED(3);
R_Key=~R_Key;
break;
case 0x12:
//-------滚轮信号A模拟-----//
Signal_A=~Signal_A;
break;
case 0x14:
//-------滚轮信号B模拟-----//
Signal_B=~Signal_B;
break;
case 0x48:
XLay_L=~XLay_L;
break;
case 0x50:
XLay_R=~XLay_R;
break;
case 0x52:
YLay_U=~YLay_U;
break;
case 0x55:
YLay_D=~YLay_D;
break;
default: break;
}
Ready_Idle=0; //已经将接收数据处理完毕
}
}
void main(void)
{
IT0=1; //外部中断0为边沿触发方式
EX0=1; //外部中断INT0使能
EA=1; //开总中断
LED=0;
Signal_A=0;
Signal_B=0;
XLay_L=0;
XLay_R=0;
YLay_U=0;
YLay_D=0;
L_Key=1;
M_Key=1;
R_Key=1;
nRF2401_Inti(); //nRF2401初始化及相关配置
while(1)
{
Receive_Idle();
}
}
void EX_INT0(void) interrupt 0
{
nRF2401_ReadData();
Ready_Idle=1; //准备处理接收数据
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -