找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2685|回复: 4
收起左侧

stm32f103+nrf24l01无线模块 多发一收源程序

  [复制链接]
ID:535285 发表于 2019-5-11 13:59 | 显示全部楼层 |阅读模式
发射端一:stm32f103c8t6,  0.96寸OLED 屏幕,nrf24l01无线模块,发送数字0
发射端二:stm32f103c8t6,  0.96寸OLED 屏幕,nrf24l01无线模块,发送数字1
接收端:(战舰V3开发板)   stm32f103zet6,  LCD屏幕,nrf24l01无线模块,分别接受数字0和1

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"         
  7. #include "24l01.h"          


  8. int main(void)
  9. {         
  10.         //u8 key,mode;
  11.         //u16 t=0;                         
  12.         u8  tmp_buf;
  13.         u8  tmp_buf1[3];
  14.          u8 data0;
  15.          u8 data1[3];
  16.         delay_init();                     //延时函数初始化          
  17.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  18.         uart_init(115200);                 //串口初始化为115200
  19.         LED_Init();                                          //初始化与LED连接的硬件接口
  20.         KEY_Init();                                        //初始化按键
  21.         LCD_Init();                                           //初始化LCD  
  22.         NRF24L01_Init();                    //初始化NRF24L01
  23.         POINT_COLOR=RED;                        //设置字体为红色
  24.         LCD_ShowString(30,50,200,16,16,"WarShip STM32");       
  25.         LCD_ShowString(30,70,200,16,16,"NRF24L01 TEST");       
  26.         LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  27.         LCD_ShowString(30,110,200,16,16,"2015/1/17");
  28.         while(NRF24L01_Check())
  29.         {
  30.                 LCD_ShowString(30,130,200,16,16,"NRF24L01 Error");
  31.                 delay_ms(200);
  32.                 LCD_Fill(30,130,239,130+16,WHITE);
  33.                 delay_ms(200);
  34.         }
  35.         LCD_ShowString(30,130,200,16,16,"NRF24L01 OK");

  36.         POINT_COLOR=BLUE;//设置字体为蓝色       

  37.        
  38.                 LCD_ShowString(30,150,200,16,16,"NRF24L01 RX_Mode");       
  39.                 LCD_ShowString(30,170,200,16,16,"Received DATA0:");       
  40.                 LCD_ShowString(30,190,200,16,16,"Received DATA1:");       
  41.                
  42.                
  43.           delay_ms(1000);               
  44.                 while(1)
  45.                 {          
  46.                   NRF24L01_CE=0;
  47.                         NRF24L01_RX_Mode();
  48.                         if(NRF24L01_RxPacket(&tmp_buf)==0)//一旦接收到信息,则显示出来.
  49.                                                 {
  50.                                                   data0=tmp_buf;
  51.                                                         LCD_ShowString(170,170,2,16,16,&data0);   
  52.                                                 }
  53.                         NRF24L01_CE=1;
  54.                         delay_ms(2000);
  55.                                                
  56.                                                
  57.                                                
  58.                         NRF24L01_CE=0;
  59.                         NRF24L01_RX_Mode1();
  60.                         if(NRF24L01_RxPacket(tmp_buf1)==0)//一旦接收到信息,则显示出来.
  61.                                                 {
  62.                                                   data1[0]=* tmp_buf1;
  63.                                                         LCD_ShowString(170,190,16,16,16,&data1[0]);   
  64.                                                 }       
  65.                         NRF24L01_CE=1;                       
  66.                         delay_ms(2000);
  67.                 }       
  68.        
  69.        
  70.        

  71. }
复制代码

所有资料51hei提供下载:
nrf24l01 二发一收.7z (239.77 KB, 下载次数: 143)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:328014 发表于 2019-5-17 06:16 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:322573 发表于 2019-11-29 16:20 | 显示全部楼层
学习一下!
回复

使用道具 举报

ID:312223 发表于 2020-1-16 20:07 | 显示全部楼层
好资料,卡在多发一收半天了,用了一下,很不错,无线接收端分开调用很好,之前用switch判断接受只能收到通道0或者通道1其中一个,现在单独分开调用就能用了,感谢!
回复

使用道具 举报

ID:116773 发表于 2020-1-21 22:00 | 显示全部楼层
下载后无法解压,也许是我的WinRAR版本不支持吧?
TIM截图20200121215218.jpg

TIM截图20200121215300.jpg

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表