如何让SPI nRF24L01无线在两个单片机里实现通信.docVIP

如何让SPI nRF24L01无线在两个单片机里实现通信.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何让SPI nRF24L01无线在两个单片机里实现通信 main.c 1 #include 2 #include“2401.h” 3 4 #define uint unsigned int 5 #define uchar unsigned char 6 7 sbit KEY8=P3^7; //发送按键 8 sbit beep=P2^3;//喇叭 9 sbit LED6=P1^6; ////接收到数据后的功能实现灯 10 11 void delay_ms(uint z) //延时函数 12 { 13 uint x,y; 14 f or(x=z;x》0;x--) 15 for(y=110;y》0;y--); 16 } 17 void delayms(unsigned int x) 18 { 19 unsigned int i; 20 while(x--) 21 for(i=125;i》0;i--); 22 } 23 void main() 24 { 25 uchar Tx_Buf1[]={1};//发送的信息1 26 uchar Rx_Buf[32]; //接收到的数据暂存器,最多32字节数据 27 init_N RF24L01(); 28 LED6=1;//初始灯6熄灭 29 30 31 while(NRF24L01_Check()) //检查不到24l01则报警 32 { 33 beep=0; 34 delayms(200); 35 beep=1; 36 delayms(200); 37 } 38 while(1) 39 { 40 RX_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(300); //发送后LED6闪一下 55 break; //退出最近的循环,从而变回接收模式,这句关键 56 } 57 58 } 59 } 60 if(Rx_Buf[0]==1) //若接收到对应的数据则实现对应功能 61 { 62 Rx_Buf[0]=0;//清空数据 63 LED6=0; 64 delay_ms(300); 65 LED6=1; 66 delay_ms(300);//接收到数据 后闪烁 67 } 68 } 69 } 2401.h 1 #ifndef __NRF24L01_H__ 2 #define __NRF24L01_H__ 3 #include 4 #define uchar unsigned char 5 #define uint unsigned int 6 7 sbit CE =P1^0; 8 sbit CSN =P1^1; 9 sbit SCK =P1^2; 10 sbit MOSI =P1^3; 11 sbit MISO =P1^4; 12 sbit IRQ =P1^5; 13 14 //uchar TxBuf[20]={“1234567890abcdefghij”}; 15 #define TX_ ADR_WIDTH 5 // 5 uints TX address width 16 #define RX_ADR_WIDTH 5 // 5 uints RX address width 17 #define TX_PLOAD_WIDTH 32 // 32 uints TX payload 18 #define RX_PLOAD_WIDTH 32 // 32 uints TX payload 19 uchar TX_ADDRESS[TX_ADR_WIDTH]= {0xE7,0xE7,0xE7,0xE7,0xE7}; //本地地址 20 uchar RX_ADDRESS[RX_ADR_WIDTH]= {0xE7,0xE7,0xE7,0xE7,0xE7}; //接收地址 21 ///***************************************NRF24L01 寄存器指令******************************************************* 22 #

文档评论(0)

man9872 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档