发射端一:stm32f103c8t6, 0.96寸OLED 屏幕,nrf24l01无线模块,发送数字0
发射端二:stm32f103c8t6, 0.96寸OLED 屏幕,nrf24l01无线模块,发送数字1
接收端:(战舰V3开发板) stm32f103zet6, LCD屏幕,nrf24l01无线模块,分别接受数字0和1
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "24l01.h"
-
- int main(void)
- {
- //u8 key,mode;
- //u16 t=0;
- u8 tmp_buf;
- u8 tmp_buf1[3];
- u8 data0;
- u8 data1[3];
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为115200
- LED_Init(); //初始化与LED连接的硬件接口
- KEY_Init(); //初始化按键
- LCD_Init(); //初始化LCD
- NRF24L01_Init(); //初始化NRF24L01
- POINT_COLOR=RED; //设置字体为红色
- LCD_ShowString(30,50,200,16,16,"WarShip STM32");
- LCD_ShowString(30,70,200,16,16,"NRF24L01 TEST");
- LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
- LCD_ShowString(30,110,200,16,16,"2015/1/17");
- while(NRF24L01_Check())
- {
- LCD_ShowString(30,130,200,16,16,"NRF24L01 Error");
- delay_ms(200);
- LCD_Fill(30,130,239,130+16,WHITE);
- delay_ms(200);
- }
- LCD_ShowString(30,130,200,16,16,"NRF24L01 OK");
- POINT_COLOR=BLUE;//设置字体为蓝色
-
- LCD_ShowString(30,150,200,16,16,"NRF24L01 RX_Mode");
- LCD_ShowString(30,170,200,16,16,"Received DATA0:");
- LCD_ShowString(30,190,200,16,16,"Received DATA1:");
-
-
- delay_ms(1000);
- while(1)
- {
- NRF24L01_CE=0;
- NRF24L01_RX_Mode();
- if(NRF24L01_RxPacket(&tmp_buf)==0)//一旦接收到信息,则显示出来.
- {
- data0=tmp_buf;
- LCD_ShowString(170,170,2,16,16,&data0);
- }
- NRF24L01_CE=1;
- delay_ms(2000);
-
-
-
- NRF24L01_CE=0;
- NRF24L01_RX_Mode1();
- if(NRF24L01_RxPacket(tmp_buf1)==0)//一旦接收到信息,则显示出来.
- {
- data1[0]=* tmp_buf1;
- LCD_ShowString(170,190,16,16,16,&data1[0]);
- }
- NRF24L01_CE=1;
- delay_ms(2000);
- }
-
-
-
-
- }
复制代码
所有资料51hei提供下载:
nrf24l01 二发一收.7z
(239.77 KB, 下载次数: 143)
|