《如何让SPI nRF24L01无线在两个单片机里实现通信.doc》由会员分享,可在线阅读,更多相关《如何让SPI nRF24L01无线在两个单片机里实现通信.doc(3页珍藏版)》请在三一文库上搜索。
1、如何让SPI nRF24L01无线在两个单片机里实现通信main.c1 #include2 #include“2401.h”34 #define uint unsigned int5 #define uchar unsigned char67 sbit KEY8=P3; /发送按键8 sbit beep=P2;/喇叭9 sbit LED6=P1; /接收到数据后的功能实现灯1011 void delay_ms(uint z) /延时函数12 13 uint x,y;14 for(x=z;x0;x-)15 for(y=110;y0;y-);16 17 void delayms(unsigned
2、int x)18 19 unsigned int i;20 while(x-)21 for(i=125;i0;i-);22 23 void main()24 25 uchar Tx_Buf1=1;/发送的信息126 uchar Rx_Buf32; /接收到的数据暂存器,最多32字节数据27 init_NRF24L01();28 LED6=1;/初始灯6熄灭293031 while(NRF24L01_Check() /检查不到24l01则报警32 33 beep=0;34 delayms(200);35 beep=1;36 delayms(200);37 38 while(1)39 40 RX_
3、Mode();/接收模式41 while(!nRF24L01_RxPacket(Rx_Buf) /等待接收数据 ,返回1则接收到数据 ,在等待接收数据期间,可以随时变成发送模式42 43 if(KEY8=0) /按了按键8 则变成发送模式,发送对应数据,发送完后变成接收模式44 45 delay_ms(5);/消抖动46 if(KEY8=0)47 48 while(!KEY8);49 TX_Mode(); /发送模式50 nRF24L01_TxPacket(Tx_Buf1); / 发送命令数据51 LED6=0;52 delay_ms(300);53 LED6=1;54 delay_ms(30
4、0); /发送后LED6闪一下55 break; /退出最近的循环,从而变回接收模式,这句关键56 5758 59 60 if(Rx_Buf0=1) /若接收到对应的数据则实现对应功能61 62 Rx_Buf0=0;/清空数据63 LED6=0;64 delay_ms(300);65 LED6=1;66 delay_ms(300);/接收到数据 后闪烁67 68 69 2401.h1 #ifndef _NRF24L01_H_2 #define _NRF24L01_H_3 #include4 #define uchar unsigned char5 #define uint unsigned int67 sbit CE =P1