哈哈,窮吊死一個,自己做的一個超簡單的板還沒有電源提供,只得借助我的大開發(fā)板啦。其實這2個模塊是完全可以分開的,無線嘛,你懂得!進入正題,這個實驗的功能就是一個發(fā)送模塊(大的那個板)連接4個按鍵,通過按動這4個不同的按鍵來發(fā)送4種不同的命令,來控制接收端(小的板)點亮4個不同的燈。
>_
1 void main()
2 {
3 uchar Tx_Buf1[]={1}; //發(fā)送的信息1
4 uchar Rx_Buf[32]; //接收到的數(shù)據(jù)暫存器,最多32字節(jié)數(shù)據(jù)
5 init_NRF24L01();
6 LED6=1; //初始燈6熄滅
7
8 while(NRF24L01_Check()) //檢查不到24l01則報警
9 {
10 beep=0;
11 delay_ms(200);
12 beep=1;
13 delay_ms(200);
14 }
15 while(1)
16 {
17 RX_Mode(); //接收模式
18 while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收數(shù)據(jù),返回1則接收到數(shù)據(jù),在等待接收數(shù)據(jù)期間,可以隨時變成發(fā)送模式
19 {
20 if(KEY1==0) //按了按鍵1,則變成發(fā)送模式,發(fā)送對應數(shù)據(jù),發(fā)送完后變成接收模式
21 {
22 delay_ms(5);//消抖動
23 if(KEY1==0)
24 {
25 while(!KEY1);
26 TX_Mode(); //發(fā)送模式
27 Tx_Buf1[0]=1; //將1發(fā)送過去
28 nRF24L01_TxPacket(Tx_Buf1); //發(fā)送命令數(shù)據(jù)
29 LED6=0;
30 delay_ms(300);
31 LED6=1;
32 delay_ms(300); //發(fā)送后LED1閃一下
33 break; //退出最近的循環(huán),從而變回接收模式,這句關鍵
34 }
35 }
36 else if(KEY2==0)
37 {
38 delay_ms(5);//消抖動
39 if(KEY2==0)
40 {
41 while(!KEY2);
42 TX_Mode(); //發(fā)送模式
43 Tx_Buf1[0]=2; //將2發(fā)送過去
44 nRF24L01_TxPacket(Tx_Buf1); //發(fā)送命令數(shù)據(jù)
45 LED6=0;
46 delay_ms(300);
47 LED6=1;
48 delay_ms(300);
49 break; //退出最近的循環(huán),從而變回接收模式,這句關鍵
50 }
51 }
52 else if(KEY3==0)
53 {
54 delay_ms(5);//消抖動
55 if(KEY3==0)
56 {
57 while(!KEY3);
58 TX_Mode(); //發(fā)送模式
59 Tx_Buf1[0]=3; //將3發(fā)送過去
60 nRF24L01_TxPacket(Tx_Buf1); //發(fā)送命令數(shù)據(jù)
61 LED6=0;
62 delay_ms(300);
63 LED6=1;
64 delay_ms(300);
65 break; //退出最近的循環(huán),從而變回接收模式,這句關鍵
66 }
67 }
68 else if(KEY4==0) //按了按鍵8,則變成發(fā)送模式,發(fā)送對應數(shù)據(jù),發(fā)送完后變成接收模式
69 {
70 delay_ms(5);//消抖動
71 if(KEY4==0)
72 {
73 while(!KEY4);
74 TX_Mode(); //發(fā)送模式
75 Tx_Buf1[0]=4; //將4發(fā)送過去
76 nRF24L01_TxPacket(Tx_Buf1); //發(fā)送命令數(shù)據(jù)
77 LED6=0;
78 delay_ms(300);
79 LED6=1;
80 delay_ms(300);
81 break; //退出最近的循環(huán),從而變回接收模式,這句關鍵
82 }
83 }
84 }
85 if(Rx_Buf[0]==1) //若接收到對應的數(shù)據(jù)則實現(xiàn)對應功能
86 {
87 Rx_Buf[0]=0; //清空數(shù)據(jù)
88 LED6=0;
89 delay_ms(300);
90 LED6=1;
91 delay_ms(300); //接收到數(shù)據(jù) 后閃爍
92 }
93 }
94 }
第8~14行檢測nRF24L01是否存在,