标题: NRF24L01无线模块收发程序(实测成功 多图) [打印本页]

作者: hutians    时间: 2015-2-10 22:47
标题: NRF24L01无线模块收发程序(实测成功 多图)
       本模块是NRF24L01无线传输模块,用于无线传输数据,距离不远,一般只是能够满足小距离的传输,目测是4-5m,价格一般是4元左右,可以方便的买到。


       51最小系统学习板就可以,当时是用了两块学习板,一块用于发送,一块用于接收。



         小车也是比较容易购到的,四个端口控制两个电机,两个控制一个电机,当两个端口高低电平不同时电机就会转动,即为赋值1和0是电机转动,赋值可以用单片机作用,当然这是小车启动部分,前进后退左转右转就是你赋值0和1的顺序问题了。



       整体思路是用发射端的按键控制小车,即为按键按下就前进,再按其他按键实现其他功能,本次程序是在用NRF24L01发射数据在接收端用1602显示的基础上改变。
下面是程序源码(有好几个文件,分别创建)

  1. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. #include<reg52.h>
  3. #include<stdio.h>
  4. #include"1602.h"
  5. #include"delay.h"
  6. #include "nrf24l01.h"
  7. #define uint unsigned int
  8. #define uchar unsigned char
  9. uint Weight_Shiwu=1234;
  10. unsigned char KeyScan(void);//键盘扫描
  11. // unsigned char KeyScan(void);//键盘扫描

  12. //#define KeyPort P0
  13. sbit KEY1 = P0^0;
  14. sbit KEY2 = P0^1;
  15. sbit KEY3 = P0^2;
  16. sbit KEY4 = P0^3;
  17. sbit KEY5 = P0^4;
  18. void main()
  19. {
  20. // char TxDate[4];
  21. // LCD_Init(); //初始化液晶屏
  22. // LCD_Clear(); //清屏
  23. // NRF24L01Int(); //初始化LCD1602
  24. // LCD_Write_String(4,0,"welcome");
  25. while(1)
  26. {
  27. KeyScan();

  28. }
  29. }




  30. unsigned char KeyScan(void)
  31. {
  32. /********************************************************/
  33. char TxDate[4];
  34. {
  35. if(!KEY1) //如果检测到低电平,说明按键按下
  36. {
  37. DelayMs(10); //延时去抖,一般10-20ms
  38. if(!KEY1) //再次确认按键是否按下,没有按下则退出
  39. {
  40. while(!KEY1);//如果确认按下按键等待按键释放,没有则退出
  41. {
  42. TxDate[0] = 1;//向左转
  43. TxDate[1] = 0;
  44. TxDate[2] = 1;
  45. TxDate[3] = 1;
  46. NRFSetTxMode(TxDate);//发送数据·
  47. while(CheckACK()); //检测是否发送完毕
  48. }
  49. }
  50. }
  51. /********************************************************/
  52. else if(!KEY2) //如果检测到低电平,说明按键按下
  53. {
  54. DelayMs(10); //延时去抖,一般10-20ms
  55. if(!KEY2) //再次确认按键是否按下,没有按下则退出
  56. {
  57. while(!KEY2);//如果确认按下按键等待按键释放,没有则退出
  58. {
  59. TxDate[0] = 1;//向右转
  60. TxDate[1] = 1;
  61. TxDate[2] = 1;
  62. TxDate[3] = 0;
  63. NRFSetTxMode(TxDate);//发送数据
  64. while(CheckACK()); //检测是否发送完毕
  65. }
  66. }
  67. }
  68. /********************************************************/
  69. else if(!KEY3) //如果检测到低电平,说明按键按下
  70. {
  71. DelayMs(10); //延时去抖,一般10-20ms
  72. if(!KEY3) //再次确认按键是否按下,没有按下则退出
  73. {
  74. while(!KEY3);//如果确认按下按键等待按键释放,没有则退出
  75. {
  76. TxDate[0] = 1;//前进
  77. TxDate[1] = 0;
  78. TxDate[2] = 1;
  79. TxDate[3] = 0;
  80. NRFSetTxMode(TxDate);//发送数据
  81. while(CheckACK()); //检测是否发送完毕
  82. }
  83. }
  84. }
  85. /********************************************************/
  86. else if(!KEY4) //如果检测到低电平,说明按键按下
  87. {
  88. DelayMs(10); //延时去抖,一般10-20ms
  89. if(!KEY4) //再次确认按键是否按下,没有按下则退出
  90. {
  91. while(!KEY4);//如果确认按下按键等待按键释放,没有则退出
  92. {
  93. TxDate[0] = 0;//后退
  94. TxDate[1] = 1;
  95. TxDate[2] = 0;
  96. TxDate[3] = 1;
  97. NRFSetTxMode(TxDate);//发送数据
  98. while(CheckACK()); //检测是否发送完毕
  99. }
  100. }
  101. }
  102. else if(!KEY5)
  103. {
  104. DelayMs(10);
  105. if(!KEY5)
  106. {
  107. while(!KEY5)
  108. {
  109. TxDate[0] = 1;
  110. TxDate[1] = 1;
  111. TxDate[2] = 1;
  112. TxDate[3] = 1;
  113. NRFSetTxMode(TxDate);
  114. while(CheckACK());
  115. }
  116. }
  117. }
  118. }
  119. }
复制代码



  1. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. #include<reg52.h>
  3. #include<stdio.h>
  4. #include"1602.h"
  5. #include"delay.h"
  6. #include "nrf24l01.h"
  7. #define uint unsigned int
  8. #define uchar unsigned char
  9. uint Weight;
  10. sbit a = P2^0;
  11. sbit b = P2^1;
  12. sbit c = P2^2;
  13. sbit d = P2^3;
  14. void main()
  15. {
  16. LCD_Init(); //初始化液晶屏
  17. LCD_Clear(); //清屏
  18. *(RevTempDate+4)=*\0*;
  19. NRF24L01Int();
  20. while(1)
  21. {

  22. NRFSetRXMode();//设置为接收模式
  23. GetDate();//开始接受数;
  24. // Weight=RevTempDate[0]*1000+RevTempDate[1]*100+RevTempDate[2]*10+RevTempDate[3];
  25. LCD_Write_Char(7,0,RevTempDate[0]+0x30);
  26. LCD_Write_Char(8,0,RevTempDate[1]+0x30);
  27. LCD_Write_Char(9,0,RevTempDate[2]+0x30);
  28. LCD_Write_Char(10,0,RevTempDate[3]+0x30);
  29. a = RevTempDate[0];//根据接受数据来设置高低电平(目测仅限传输1.0两种数值)
  30. b = RevTempDate[1];
  31. c = RevTempDate[2];
  32. d = RevTempDate[3];
  33. }
  34. }

  35. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
复制代码

  1. #include<reg52.h>
  2. #include "nrf24l01.h"
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit IRQ =P1^2;//输入
  6. sbit MISO =P1^3; //输入
  7. sbit MOSI =P1^1;//输出
  8. sbit SCLK =P1^4;//输出
  9. sbit CE =P1^5;//输出
  10. sbit CSN =P1^0;//输出
  11. uchar code TxAddr[]={0x34,0x43,0x10,0x10,0x01};//发送地址
  12. /*****************状态标志*****************************************/
  13. uchar bdata sta; //状态标志
  14. sbit RX_DR=sta^6;
  15. sbit TX_DS=sta^5;
  16. sbit MAX_RT=sta^4;
  17. /*****************SPI时序函数******************************************/
  18. uchar NRFSPI(uchar date)
  19. {
  20. uchar i;
  21. for(i=0;i<8;i++) // 循环8次
  22. {
  23. if(date&0x80)
  24. MOSI=1;
  25. else
  26. MOSI=0; // byte最高位输出到MOSI
  27. date<<=1; // 低一位移位到最高位
  28. SCLK=1;
  29. if(MISO) // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据
  30. date|=0x01; // 读MISO到byte最低位
  31. SCLK=0; // SCK置低
  32. }
  33. return(date); // 返回读出的一字节
  34. }
  35. /**********************NRF24L01初始化函数*******************************/
  36. void NRF24L01Int()
  37. {
  38. DDelay(2);//让系统什么都不干
  39. CE=0; //待机模式1
  40. CSN=1;
  41. SCLK=0;
  42. IRQ=1;
  43. }
  44. /*****************SPI读寄存器一字节函数*********************************/
  45. uchar NRFReadReg(uchar RegAddr)
  46. {
  47. uchar BackDate;
  48. CSN=0;//启动时序
  49. NRFSPI(RegAddr);//写寄存器地址
  50. BackDate=NRFSPI(0x00);//写入读寄存器指令
  51. CSN=1;
  52. return(BackDate); //返回状态
  53. }
  54. /*****************SPI写寄存器一字节函数*********************************/
  55. uchar NRFWriteReg(uchar RegAddr,uchar date)
  56. {
  57. uchar BackDate;
  58. CSN=0;//启动时序
  59. BackDate=NRFSPI(RegAddr);//写入地址
  60. NRFSPI(date);//写入值
  61. CSN=1;
  62. return(BackDate);
  63. }
  64. /*****************SPI读取RXFIFO寄存器的值********************************/
  65. uchar NRFReadRxDate(uchar RegAddr,uchar *RxDate,uchar DateLen)
  66. { //寄存器地址//读取数据存放变量//读取数据长度//用于接收
  67. uchar BackDate,i;
  68. CSN=0;//启动时序
  69. BackDate=NRFSPI(RegAddr);//写入要读取的寄存器地址
  70. for(i=0;i<DateLen;i++) //读取数据
  71. {
  72. RxDate[i]=NRFSPI(0);
  73. }
  74. CSN=1;
  75. return(BackDate);
  76. }
  77. /*****************SPI写入TXFIFO寄存器的值**********************************/
  78. uchar NRFWriteTxDate(uchar RegAddr,uchar *TxDate,uchar DateLen)
  79. { //寄存器地址//写入数据存放变量//读取数据长度//用于发送
  80. uchar BackDate,i;
  81. CSN=0;
  82. BackDate=NRFSPI(RegAddr);//写入要写入寄存器的地址
  83. for(i=0;i<DateLen;i++)//写入数据
  84. {
  85. NRFSPI(*TxDate++);
  86. }
  87. CSN=1;
  88. return(BackDate);
  89. }
  90. /*****************NRF设置为发送模式并发送数据******************************/
  91. void NRFSetTxMode(uchar *TxDate)
  92. {//发送模式
  93. CE=0;
  94. NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);//写寄存器指令+接收地址使能指令+接收地址+地址宽度
  95. NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);//为了应答接收设备,接收通道0地址和发送地址相同
  96. NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);//写入数据
  97. /******下面有关寄存器配置**************/
  98. NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答
  99. NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0
  100. NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a); // 自动重发延时等待250us+86us,自动重发10次
  101. NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40
  102. NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益
  103. NRFWriteReg(W_REGISTER+CONFIG,0x0e); // CRC使能,16位CRC校验,上电
  104. CE=1;
  105. DDelay(5);//保持10us秒以上
  106. }
  107. /*****************NRF设置为接收模式并接收数据******************************/
  108. //主要接收模式
  109. void NRFSetRXMode()
  110. {
  111. CE=0;
  112. NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH); // 接收设备接收通道0使用和发送设备相同的发送地址
  113. NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答
  114. NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0
  115. NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40
  116. NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH); // 接收通道0选择和发送通道相同有效数据宽度
  117. NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益*/
  118. NRFWriteReg(W_REGISTER+CONFIG,0x0f); // CRC使能,16位CRC校验,上电,接收模式
  119. CE = 1;
  120. DDelay(5);//保持10us秒以上
  121. }
  122. /****************************检测应答信号******************************/
  123. uchar CheckACK()
  124. { //用于发射
  125. sta=NRFReadReg(R_REGISTER+STATUS); // 返回状态寄存器
  126. if(TX_DS||MAX_RT) //发送完毕中断
  127. {
  128. NRFWriteReg(W_REGISTER+STATUS,0xff); // 清除TX_DS或MAX_RT中断标志
  129. CSN=0;
  130. NRFSPI(FLUSH_TX);//用于清空FIFO !!关键!!不然会出现意想不到的后果!!!大家记住!!
  131. CSN=1;
  132. return(0);
  133. }
  134. else
  135. return(1);
  136. }
  137. /******************判断是否接收收到数据,接到就从RX取出*********************/
  138. //用于接收模式
  139. uchar NRFRevDate(uchar *RevDate)
  140. {
  141. uchar RevFlags=0;
  142. sta=NRFReadReg(R_REGISTER+STATUS);//发送数据后读取状态寄存器
  143. if(RX_DR) // 判断是否接收到数据
  144. {
  145. CE=0; //SPI使能
  146. NRFReadRxDate(R_RX_PAYLOAD,RevDate,RX_DATA_WITDH);// 从RXFIFO读取数据
  147. RevFlags=1; //读取数据完成标志
  148. }
  149. NRFWriteReg(W_REGISTER+STATUS,0xff); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标
  150. return(RevFlags);
  151. }
  152. void DDelay(uint t)
  153. {
  154. uint x,y;
  155. for(x=t;x>0;x--)
  156. for(y=110;y>0;y--);
  157. }
  158. ////////////////////////////////////////////////////////////////////////////////////////////////////////
复制代码

  1. #include "delay.h"
  2. /*------------------------------------------------
  3. uS延时函数,含有输入参数 unsigned char t,无返回值
  4. unsigned char 是定义无符号字符变量,其值的范围是
  5. 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
  6. 长度如下 T=tx2+5 uS
  7. ------------------------------------------------*/
  8. void DelayUs2x(unsigned char t)
  9. {
  10. while(--t);
  11. }
  12. /*------------------------------------------------
  13. mS延时函数,含有输入参数 unsigned char t,无返回值
  14. unsigned char 是定义无符号字符变量,其值的范围是
  15. 0~255 这里使用晶振12M,精确延时请使用汇编
  16. ------------------------------------------------*/
  17. void DelayMs(unsigned char t)
  18. {

  19. while(t--)
  20. {
  21. //大致延时1mS
  22. DelayUs2x(245);
  23. DelayUs2x(245);

  24. }
  25. }
  26. ///////////////////////////////////////////////////////////////////////////////////////////
复制代码

  1. 下面是接收的NRF24L01的程序。
  2. #include<reg52.h>
  3. #include "nrf24l01.h"
  4. #include <intrins.h>
  5. #define uchar unsigned char
  6. #define uint unsigned int

  7. sbit IRQ =P1^2;//输入
  8. sbit MISO =P1^3; //输入
  9. sbit MOSI =P1^1;//输出
  10. sbit SCLK =P1^4;//输出
  11. sbit CE =P1^5;//输出
  12. sbit CSN =P1^0;//输出


  13. uchar RevTempDate[5];//最后一位用来存放结束标志
  14. uchar code TxAddr[]={0x34,0x43,0x10,0x10,0x01};//发送地址
  15. /*****************状态标志*****************************************/
  16. uchar bdata sta; //状态标志
  17. sbit RX_DR=sta^6;
  18. sbit TX_DS=sta^5;
  19. sbit MAX_RT=sta^4;
  20. /*****************SPI时序函数******************************************/
  21. uchar NRFSPI(uchar date)
  22. {
  23. uchar i;
  24. for(i=0;i<8;i++) // 循环8次
  25. {
  26. if(date&0x80)
  27. MOSI=1;
  28. else
  29. MOSI=0; // byte最高位输出到MOSI
  30. date<<=1; // 低一位移位到最高位
  31. SCLK=1;
  32. if(MISO) // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据
  33. date|=0x01; // 读MISO到byte最低位
  34. SCLK=0; // SCK置低
  35. }
  36. return(date); // 返回读出的一字节
  37. }
  38. /**********************NRF24L01初始化函数*******************************/
  39. void NRF24L01Int()
  40. {
  41. NRFDelay(2);//让系统什么都不干
  42. CE=0;
  43. CSN=1;
  44. SCLK=0;
  45. IRQ=1;
  46. }
  47. /*****************SPI读寄存器一字节函数*********************************/
  48. uchar NRFReadReg(uchar RegAddr)
  49. {
  50. uchar BackDate;
  51. CSN=0;//启动时序
  52. NRFSPI(RegAddr);//写寄存器地址
  53. BackDate=NRFSPI(0x00);//写入读寄存器指令
  54. CSN=1;
  55. return(BackDate); //返回状态
  56. }
  57. /*****************SPI写寄存器一字节函数*********************************/
  58. uchar NRFWriteReg(uchar RegAddr,uchar date)
  59. {
  60. uchar BackDate;
  61. CSN=0;//启动时序
  62. BackDate=NRFSPI(RegAddr);//写入地址
  63. NRFSPI(date);//写入值
  64. CSN=1;
  65. return(BackDate);
  66. }
  67. /*****************SPI读取RXFIFO寄存器的值********************************/
  68. uchar NRFReadRxDate(uchar RegAddr,uchar *RxDate,uchar DateLen)
  69. { //寄存器地址//读取数据存放变量//读取数据长度//用于接收
  70. uchar BackDate,i;
  71. CSN=0;//启动时序
  72. BackDate=NRFSPI(RegAddr);//写入要读取的寄存器地址
  73. for(i=0;i<DateLen;i++) //读取数据
  74. {
  75. RxDate[i]=NRFSPI(0);
  76. }
  77. CSN=1;
  78. return(BackDate);
  79. }
  80. /*****************SPI写入TXFIFO寄存器的值**********************************/
  81. uchar NRFWriteTxDate(uchar RegAddr,uchar *TxDate,uchar DateLen)
  82. { //寄存器地址//写入数据存放变量//读取数据长度//用于发送
  83. uchar BackDate,i;
  84. CSN=0;
  85. BackDate=NRFSPI(RegAddr);//写入要写入寄存器的地址
  86. for(i=0;i<DateLen;i++)//写入数据
  87. {
  88. NRFSPI(*TxDate++);
  89. }
  90. CSN=1;
  91. return(BackDate);
  92. }
  93. /*****************NRF设置为发送模式并发送数据******************************/
  94. void NRFSetTxMode(uchar *TxDate)
  95. { //发送模式
  96. CE=0;
  97. NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);//写寄存器指令+P0地址使能指令+发送地址+地址宽度
  98. NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);//为了应答接收设备,接收通道0地址和发送地址相同
  99. NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);//写入数据
  100. /******下面有关寄存器配置**************/
  101. NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答
  102. NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0
  103. NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a); // 自动重发延时等待250us+86us,自动重发10次
  104. NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40
  105. NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益
  106. NRFWriteReg(W_REGISTER+CONFIG,0x0e); // CRC使能,16位CRC校验,上电
  107. CE=1;
  108. NRFDelay(5);//保持10us秒以上
  109. }
  110. /*****************NRF设置为接收模式并接收数据******************************/
  111. //接收模式
  112. void NRFSetRXMode()
  113. {
  114. CE=0;
  115. NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH); // 接收设备接收通道0使用和发送设备相同的发送地址
  116. NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答
  117. NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0
  118. NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40
  119. NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH); // 接收通道0选择和发送通道相同有效数据宽度
  120. NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益
  121. NRFWriteReg(W_REGISTER+CONFIG,0x0f); // CRC使能,16位CRC校验,上电,接收模式
  122. CE = 1;
  123. NRFDelay(5);
  124. }
  125. /****************************检测是否有接收到数据******************************/
  126. void CheckACK()
  127. { //用于发射模式接收应答信号
  128. sta=NRFReadReg(R_REGISTER+STATUS); // 返回状态寄存器
  129. if(TX_DS)
  130. NRFWriteReg(W_REGISTER+STATUS,0xff); // 清除TX_DS或MAX_RT中断标志
  131. }
  132. /*************************接收数据*********************************************/
  133. void GetDate()
  134. {
  135. sta=NRFReadReg(R_REGISTER+STATUS);//发送数据后读取状态寄存器
  136. if(RX_DR) // 判断是否接收到数据
  137. {
  138. CE=0;//待机
  139. NRFReadRxDate(R_RX_PAYLOAD,RevTempDate,RX_DATA_WITDH);// 从RXFIFO读取数据 接收4位即可,后一位位结束位
  140. NRFWriteReg(W_REGISTER+STATUS,0xff); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标
  141. CSN=0;
  142. NRFSPI(FLUSH_RX);//用于清空FIFO !!关键!!不然会出现意想不到的后果!!!大家记住!!
  143. CSN=1;
  144. }
  145. //NRFWriteReg(W_REGISTER+STATUS,0xff); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标
  146. }
  147. void NRFDelay(uint t)
  148. {
  149. uint x,y;
  150. for(x=t;x>0;x--)
  151. for(y=110;y>0;y--);
  152. }
复制代码












作者: delay    时间: 2015-4-4 17:16
学习了,51黑有你更精彩…………
作者: hwt616591    时间: 2015-4-4 23:13
谢谢分享
作者: JASON1991    时间: 2015-4-6 00:08
文件名怎么创建,感觉分不太清,可以给我传一份完整的吗,谢谢你了1126635996@qq.com
作者: asd123    时间: 2015-4-10 15:27

谢谢分享
作者: livingliving    时间: 2015-4-12 20:52
碉堡啦。。。。。。。。。。。。。。。。。。。
作者: 知识阅览者    时间: 2015-4-26 19:42
对了,可直接的在数据口和51的数据口相连吗?对器件端口会不会有影响?
作者: 蜗牛不要快    时间: 2015-5-29 22:18
可不可以把nrf24l01.h文件,发出来,谢谢,97494653@qq.com
作者: xumingyong88    时间: 2015-8-1 17:53
把你这个智能车的程序给我发一份啊。谢谢    xumingyong88@163.com
作者: ludaijin    时间: 2015-10-18 15:19
碉堡啦。。。。。。。。。。。。。。。。。。
作者: ludaijin    时间: 2015-10-18 15:19
对了,可直接的在数据口和51的数据口相连吗?对器件端口会不会有影响?
作者: 腾飞的龙    时间: 2015-10-27 23:15
楼主:把发射和接收分离开在上传源码就更好啦。谢谢
作者: 378182629    时间: 2015-10-28 21:53
新手是时候学习了
作者: 向左一诺    时间: 2015-11-3 15:02
楼主能不能发一份完整的资料和程序啊??谢谢了。1163955039@qq.com
作者: 1227625293    时间: 2015-11-13 15:36
楼主能不能给我发一份程序?最近在学习无线模块。1227625293@qq.com
作者: 978794076    时间: 2015-11-17 21:21
大爱楼主
作者: 梦幻情缘    时间: 2015-12-9 21:15
楼主,麻烦发一份完整的程序,谢谢啦,416604093@qq.com
作者: conaner    时间: 2015-12-20 21:57

楼主,麻烦发一份完整的程序,谢谢啦,1512934645@qq.com
作者: caoyugood    时间: 2015-12-29 11:58
楼主,能把24L01的发送和接收分开发给我吗谢谢了,12516709@qq.com
作者: Z40    时间: 2016-1-15 17:07
楼主好人!!麻烦给发一份程序,谢谢!2532179972@qq.com

作者: Z40    时间: 2016-1-15 17:09
本帖最后由 Z40 于 2016-1-15 19:13 编辑
conaner 发表于 2015-12-20 21:57
楼主,麻烦发一份完整的程序,谢谢啦,

有没有收到楼主发的程序?麻烦发一份给我2532179972@qq.com,谢谢!

作者: studint    时间: 2016-1-19 21:04
楼主可不可以发一份完整的程序,弄小车程序一直搞不定,谢谢啊   985270008@qq.com
作者: kewenwhat    时间: 2016-3-7 11:31
楼主 nrf24l01的h文件 贴一下好吗 我想看看你寄存器的定义.....
作者: 风华007    时间: 2016-3-13 13:47

楼主,可不可以给我也发一份呀 1224966445@qq.com,  谢谢
作者: 温雨无明    时间: 2016-3-16 16:29
楼主你好,我需要做一个用24l01和单片机实现短距离无线通信的课题,可不可以用一块板子实现功能?

作者: Flyxin    时间: 2016-3-19 21:37
楼主,我也想要,可不可以给我也发一份呀 972676558@qq.com, 蟹蟹蟹
作者: hupodx    时间: 2016-4-10 01:30
楼主我也想要,可不可以给我发份923054542@qq.com
作者: whengfu    时间: 2016-4-10 06:14
nrf24l01+51单片机制作遥控器控制航模,我想学习nrf24l01
作者: vampirelights    时间: 2016-4-13 08:00
楼主麻烦发一份完整的程序特别是nrf24l01.h
1458886115@qq.com
谢谢
作者: vampirelights    时间: 2016-4-13 09:45
楼主能发一份完整的程序吗,特别是nrf24l01.h,1602.h
1458886115@qq.com
谢谢!
作者: 1625155363    时间: 2016-4-25 16:49
楼主能不能发一份完整的资料和程序啊?谢谢了!大爱楼主!1428487355@qq.com
作者: 1625155363    时间: 2016-4-25 16:50
楼主能不能发一份完整的资料和程序啊?谢谢了!大爱楼主!1428487355@qq.com
作者: 5f688    时间: 2016-4-25 22:23
好用的东东,,,值得看一下
作者: 路人甲111    时间: 2016-5-6 17:19
文件名怎么创建,感觉分不太清,可以给我传一份完整的吗,谢谢你了1083474829@qq.com
作者: 路人甲111    时间: 2016-5-6 17:19
文件名怎么创建,感觉分不太清,可以给我传一份完整的吗,谢谢你了1126635996@qq.com
作者: 破扣扣    时间: 2016-5-8 22:06
谢楼主的慷慨,楼主的可借鉴性相当高
作者: 找啊找    时间: 2016-5-13 20:35
楼主可以发我一份完整的程序吗? 你的寄存器配置没有。。。真的感谢!!!!现在急需。!
作者: 找啊找    时间: 2016-5-13 20:36
我的邮箱645581635@qq.com
作者: juju1    时间: 2016-5-14 11:33
感觉蛮不错,有空试试看
作者: 等不到忘不了    时间: 2016-5-29 10:51
趁~早 发表于 2016-5-27 16:00
同求收发程序,,谢谢了

楼主给你发了吗?同求分享
作者: 94661    时间: 2016-7-19 09:45
conaner 发表于 2015-12-20 21:57
楼主,麻烦发一份完整的程序,谢谢啦,

楼主发给你了吗,可不可以也给我发一份啊  蟹蟹499116276@qq.com
作者: xixihaha123    时间: 2016-7-31 11:58
楼主,能不能发一份完整的2397551305@qq.com谢谢啦
作者: ssli    时间: 2016-8-2 22:57
收藏了
作者: wq13733446304    时间: 2016-8-4 19:09
不错,值得学习
作者: 明博仁    时间: 2016-8-18 15:16
非常佩服,谢谢分享!
作者: 明博仁    时间: 2016-8-18 15:25

楼主能不能发一份完整的资料和程序啊??谢谢了
作者: 明博仁    时间: 2016-8-18 15:25

楼主能不能发一份完整的资料和程序啊??谢谢了  1536423421@qq.com
作者: mike1024    时间: 2016-9-17 12:00
楼主能不能给我发一份程序?最近在学习无线模块。864330465@qq.com
作者: mike1024    时间: 2016-9-17 12:46
楼主能不能发一份完整的资料和程序啊??谢谢了。864330465@qq.com
作者: 单片机热爱796    时间: 2016-11-1 23:40
厉害66666
作者: ceohiwo    时间: 2016-12-10 17:25
楼主你真是太厉害了!能不能发一份程序啊?
非常感谢!
作者: 王志鹏23    时间: 2016-12-11 20:27
绑定留着
作者: ttzaio    时间: 2016-12-13 19:40
nrf24l01无线组网,我已经实现一对多,多对一。欢迎交流
作者: zmm1    时间: 2016-12-25 14:15
楼主可以发我一份完整的程序给我吗?新人想学习一下,谢谢。731732392@qq.com
作者: biaxiaoliong    时间: 2017-1-8 21:39
能把文件发一份给我吗?邮箱biaxiaoliong@163.com
作者: sushaowen    时间: 2017-3-1 17:30
楼主可以发我一份完整的程序给我吗?451092671@qq.com
作者: 邪少    时间: 2017-3-3 21:16
楼主,您好!我是才接触这个的学生,看不大懂,您能给我发一份完整的吗。谢谢,非常感谢1559697723@qq.com
作者: 邪少    时间: 2017-3-5 13:22
楼主能不能发一份完整的资料和程序啊?谢谢了!大爱楼主!!!!  1559697723@qq.com
作者: 半边树    时间: 2017-3-10 12:01
楼主,麻烦发一份完整的程序,谢谢啦271612194@qq.com
作者: xiaoli8221    时间: 2017-3-17 13:42
楼主给能份完整的程序吗?114517494@qq.com 谢谢!

有哪位大侠收到楼主程序的给转一份行吗?谢谢!
作者: cjxcjx    时间: 2017-4-5 14:41
能发份完整的给我吗?邮箱  love1257989087@qq.com
谢谢谢谢!
作者: cjxcjx    时间: 2017-4-5 14:44
有哪位收到楼主发的,可以请发给我一份吗?
新手菜鸟求知若渴,邮箱love1257989087@qq.com
谢谢谢谢!
作者: 两袖清风    时间: 2017-4-5 16:30
感谢楼主,学习下下~
作者: ▓逍〓遥◆    时间: 2017-4-12 00:34
楼主请发一份给我,谢谢,ken2818@163.com
作者: 李志岗    时间: 2017-4-20 12:25
978794076 发表于 2015-11-17 21:21
大爱楼主

楼主有没有给你发呀,给我也发一份吧
作者: 李志岗    时间: 2017-4-20 12:26
楼主可不可以给我也发一份,我真的急需 2367047789@qq.com
作者: MRluo    时间: 2017-4-24 21:34
求所有资料
作者: zhuimengyuelin    时间: 2017-4-28 10:06
请问您可以发一份完整的程序给我吗?yuelinzhuimeng@163.com
作者: 18756437253    时间: 2017-4-28 19:42
没有1602.h
作者: passbug    时间: 2017-5-3 22:45
可以把电路图和程序发给我吗?1907568983@qq.com
作者: 蓝紫色06    时间: 2017-5-19 09:17
楼主,可以把 .h 文件赐予我吗
QQ邮箱 1255906917@qq.com
作者: 梁光阳    时间: 2017-5-24 20:01
问一下楼主nrf2401买来直接能用还是得设置
作者: yanjingtu    时间: 2017-5-26 01:37
感谢楼主分享!正在找51红外遥控的相关资料
作者: heyanrog    时间: 2017-5-27 18:20
非常好的。
作者: hjb    时间: 2017-7-25 20:47
楼主发一份完整的程序给我,谢谢!新人想学习  1733745389@qq.com
作者: nwm123    时间: 2017-8-7 12:04
厉害了实用
作者: 蜕变    时间: 2017-8-21 15:22
楼主可以发一份完整程序给我吗?最近在调试nrf24l01模块,谢谢啦 981774914@qq.com
作者: 18026352242    时间: 2017-10-30 17:30
大神,可不可以发一份完整的程序给我1581264320@qq .com
作者: pmgo    时间: 2017-12-19 16:50
楼主能否发一份完整的程序呢?感谢楼主!!邮箱是2309843046@qq.com
作者: WANG1995    时间: 2018-3-8 00:22
emmmm,如果有双向交互就更好了

作者: 半仙儿    时间: 2018-3-20 16:32
514233181@qq.com   求发完整代码
作者: 程序新手    时间: 2018-3-23 10:36
我想实现用52开发板上的独立按键和nrf24l01无线模块来无线控制RFID-RC522 使rc522开启扫卡功能并进行扫卡
独立按键的地址是p3.4 p3.5 p3.6 p3.7
另外开发板上接了一块1602液晶屏
求一份完整的收发程序  急!急!急!
请大神帮帮忙


作者: 程序新手    时间: 2018-3-23 10:41
我想实现用52开发板上的独立按键和nrf24l01无线模块来无线控制RFID-RC522 使rc522开启扫卡功能并进行扫卡
其中独立按键的地址是p3.4 p3.5 p3.6 p3.7
在开发板上还接了一块1602液晶屏
求一份完整的收发程序  急!急!急!
请大神帮帮忙
邮箱:1639044126@qq.com


作者: 太阳黑子1    时间: 2018-4-21 13:21
把你这个智能车的程序给我发一份啊。谢谢  1536423421@qq.com
作者: 820590074    时间: 2018-4-23 12:23
学习学习
作者: Beastly    时间: 2018-5-13 11:54
谢谢分享
作者: meilidianzhi    时间: 2018-5-14 21:02
学习了
作者: wu'shuai    时间: 2018-5-19 15:43
楼主 能发我份程序吗
作者: eric0725    时间: 2018-10-14 14:05
楼主可以发一下收发程序给我吗?最近在做遥控小车
823991139@qq.com
谢谢楼主
作者: 小开--心    时间: 2019-8-3 11:17
不错的,可以借鉴
作者: 冷月枫    时间: 2019-9-28 11:15
up能不能把程序贴出来撒

作者: 我爱我家53453    时间: 2019-10-20 14:57
大神你好,我用NRF24L01+模块时遇到一个问题。接收端工作一段时间后就无法接收到数据,需要重启NRF24L01+模块才能恢复工作。
作者: 在路上....    时间: 2020-1-15 17:59
有没有完整的程序
作者: 刷新中    时间: 2020-12-16 15:44
感谢楼主的分享。收藏、值得学习
作者: mycshunter    时间: 2021-10-2 00:42
我用的这个NRF24L01+,传输距离感觉都超过20米了
作者: 十点差三分    时间: 2021-10-23 13:36
ludaijin 发表于 2015-10-18 15:19
对了,可直接的在数据口和51的数据口相连吗?对器件端口会不会有影响?

不会,除了电源之外的端口是可以直接和5V的单片机通信的





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1