标题:
NRF24l01实时双向2.4g通信(stm32与51单片机源码)
[打印本页]
作者:
12edad
时间:
2017-8-1 14:13
标题:
NRF24l01实时双向2.4g通信(stm32与51单片机源码)
0.png
(46.65 KB, 下载次数: 106)
下载附件
2017-8-1 17:23 上传
nrf_2.4g通信
stm32单片机源程序如下:
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "NRF24l01.h"
#include "key.h"
int main(void)
{
u8 Tx_Buf1[]={1}; //要发送的数据 1
u8 Rx_Buf[32]; //接收到的数据 最多32字节
u8 key=0;
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化
KEY_Init(); //按键初始化
LED_Init(); //LED初始化
NRF24L01_Init(); //初始化NRF24L01
while(NRF24L01_Check())//检测不到24L01
{
delay_ms(300);
LED0=!LED0;//DS0闪烁
LED1=!LED1;//DS1闪烁
}
//初始 DS1熄灭
LED1=1;//
while(1)
{
RX_Mode();//接收模式
while(NRF24L01_RxPacket(Rx_Buf))//等待接收数据 ,返回0则接收到数据 ,在等待接收数据期间,可以随时变成发送模式
{
key=KEY_Scan();
if(key==1) //按了KEY0 则变成发送模式,发送对应数据,发送完后变成接收模式
{
TX_Mode(); //发送模式
NRF24L01_TxPacket(Tx_Buf1); // 发送命令数据
LED1=0;
delay_ms(300);
LED1=1;
delay_ms(300); //发送后LED1闪一下
break; //退出最近的循环,从而变回接收模式,这句关键
}
}
if(Rx_Buf[0]==1) //若接收到对应的数据则实现对应功能
{
Rx_Buf[0]=0;//清空数据
LED1=0;
delay_ms(300);
LED1=1;
delay_ms(300);//接收到数据 后闪烁
}
}
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
51单片机源程序如下:
#include<reg51.h>
#include"2401.h"
#define uint unsigned int
#define uchar unsigned char
sbit KEY8=P3^7; //发送按键
sbit beep=P2^3;//喇叭
sbit LED6=P1^6; ////接收到数据后的功能实现灯
void delay_ms(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delayms(unsigned int x)
{
unsigned int i;
while(x--)
for(i=125;i>0;i--);
}
void main()
{
uchar Tx_Buf1[]={1};//发送的信息1
uchar Rx_Buf[32]; //接收到的数据暂存器,最多32字节数据
init_NRF24L01();
LED6=1;//初始灯6熄灭
while(NRF24L01_Check()) //检查不到24l01则报警
{
beep=0;
delayms(200);
beep=1;
delayms(200);
}
while(1)
{
RX_Mode();//接收模式
while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收数据 ,返回1则接收到数据 ,在等待接收数据期间,可以随时变成发送模式
{
if(KEY8==0) //按了按键8 则变成发送模式,发送对应数据,发送完后变成接收模式
{
delay_ms(5);//消抖动
if(KEY8==0)
{
while(!KEY8);
TX_Mode(); //发送模式
nRF24L01_TxPacket(Tx_Buf1); // 发送命令数据
LED6=0;
delay_ms(300);
LED6=1;
delay_ms(300); //发送后LED6闪一下
break; //退出最近的循环,从而变回接收模式,这句关键
}
}
}
if(Rx_Buf[0]==1) //若接收到对应的数据则实现对应功能
{
Rx_Buf[0]=0;//清空数据
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
NRF24l01实时双向通信(stm32与51).zip
(1.06 MB, 下载次数: 589)
2017-8-1 14:13 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
tyarist
时间:
2018-5-3 20:17
非常好的例子,谢谢
作者:
ccccc5321c
时间:
2018-5-5 22:16
好想下载来看看 没钱 只好自己写了
作者:
龙啸九重天
时间:
2018-5-5 22:47
资料很好,下载下来学习一下
作者:
J.K.Who
时间:
2018-5-25 14:36
多谢分享,下载学习
作者:
网侠
时间:
2018-6-22 13:57
下载学习!
作者:
chn88
时间:
2018-7-16 14:37
非常好的例子,谢谢
作者:
微笑x
时间:
2018-7-17 15:32
A good example
作者:
xld_shenghuo
时间:
2018-8-7 22:20
不错,学习一下
作者:
zhangzhoulzl
时间:
2018-8-8 23:46
非常好,正好需要
作者:
2323jgdfdf
时间:
2018-8-16 20:05
为什么没有原理图,缺少了硬件部分的资料
作者:
一起爆肥
时间:
2018-9-26 10:25
非常好的例子,谢谢
作者:
一起爆肥
时间:
2018-9-26 10:44
有原理图么
作者:
gyh32499302
时间:
2019-1-8 11:53
非常好,正好需要
作者:
yunflow
时间:
2019-3-17 17:27
支持楼主大大
作者:
威海沙滩
时间:
2019-8-9 19:36
来学习一下
作者:
haoyu983
时间:
2019-8-15 16:49
非常好的例子,谢谢
作者:
hei51ppp
时间:
2020-1-16 20:12
学习下。。。楼主好人啊。
作者:
lele5211314
时间:
2020-1-21 17:09
NRF2401还有人真正的用吗?高校里的玩具
作者:
进而种
时间:
2020-4-24 10:34
为啥打不开
作者:
莫诗书
时间:
2020-4-27 20:42
多谢老哥了
作者:
zhenghua007
时间:
2021-1-17 21:12
谢谢,正想看看不同类型单片机用NRF24L01通讯。
作者:
williamjing
时间:
2021-1-20 08:39
资料很好,下载下来学习一下
作者:
guangxin
时间:
2021-1-30 03:20
楼主牛B,正好参考
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1