#include<stc15f2k60s2.h>
#include"nrf24l01.h"
#define uint unsigned int
#define uchar unsigned char
sbit KEY0=P1^0; //发送按键
sbit LED0=P2^0; //发送数据时显示灯+接收到数据后的功能实现灯
void delay_ms(uint z) //延时函数
{
uint y;
while(z--)
for(y=110;y>0;y--);
}
void main()
{
int i=0;
uchar Tx_Buf1[]={1}; //发送的信息1
uchar Rx_Buf[32]; //接收到的数据暂存器,最多32字节数据
init_NRF24L01();
LED0=1; //初始灯0熄灭
while(NRF24L01_Check()) //检查不到24l01则报警
{
LED0=0;
delay_ms(3000);
LED0=1;
delay_ms(3000);
}
while(1)
{
RX_Mode(); //接收模式
while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收数据,返回1则接收到数据,在等待接收数据期间,可以随时变成发送模式
{
if(KEY0==0) //按了按键0,则变成发送模式,发送对应数据,发送完后变成接收模式
{ delay_ms(5); //按键消抖
if(!KEY0)
i=i+1;
if(i%2==1)
{
TX_Mode(); //发送模式
Tx_Buf1[0]=1; //将1发送过去
nRF24L01_TxPacket(Tx_Buf1); //发送命令数据
LED0=1;
break; //退出最近的循环,从而变回接收模式,这句关键
}
if(i%2==0)
{
TX_Mode(); //发送模式
Tx_Buf1[0]=2; //将2发送过去
nRF24L01_TxPacket(Tx_Buf1); //发送命令数据
break; //退出最近的循环,从而变回接收模式,这句关键
}
}
}
if(Rx_Buf[0]==1) //若接收到对应的数据则实现对应功能
{
Rx_Buf[0]=0; //清空数据
LED0=0;
}
if(Rx_Buf[0]==2) //若接收到对应的数据则实现对应功能
{
Rx_Buf[0]=0; //清空数据
LED0=1;
}
}
}
基于NFR24L01实现无线通信系统设计(源码+说明文档).rar
版权申诉
5星 · 超过95%的资源 131 浏览量
2023-05-06
10:18:59
上传
评论
收藏 1.95MB RAR 举报
Matlab仿真实验室
- 粉丝: 2w+
- 资源: 2180
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈