NRF24L01无线通信模块的快速上手

目录

0.NRF24L01无线通信资料

1.NRF24L01无线通信模块

2.常用的无线通信模块

3.接线图

4.本程序的注意事项

解决办法:

5.程序移植方法

第一步:打开资料文件夹,程序源码,V1.0,复制NRF24L01模块代码到OLED显示屏工程Hardware文件下,将OLED模块代码改名为NRF24L01编程示例

第二步:在Keil里,Hardword目录右键,添加现存文件,代码中有注释了解作用

第三步:在NRF24L01.c中修改引脚

第四步:主函数调用


通过网盘分享的文件:NRF24L01无线通信模块

链接: https://pan.baidu.com/s/1H1Q5JiShu3nKC0Xv7h9KLQ?pwd=8eb4 提取码: 8eb4

--来自百度网盘超级会员v2的分享

将地址复制到浏览器的地址栏即可


1.NRF24L01无线通信模块

中间的贴片小模块,会出现丢包的现象,解决办法:给这个模块的VCC和GND之间加一个电容,滤波


2.常用的无线通信模块

NRF24L01无线通信模块和蓝牙模块

相较于蓝牙通信模块, NRF24L01的优点是通信更加直接,不需要配对、连接等繁琐的操作,通信距离也更远


3.接线图


4.本程序的注意事项

这个NRF24L01模块是半双工通信的,半双工就是发送的时候不能同时接收,所以要避免同时发同时收的现象

解决办法:

1.如果数据发送频率比较慢,对数据完整性没有要求,那其实可以不管数据碰撞,通信双方就各发各的,碰撞的概率比较小
2.对通信双方进行简单的同步

例如规定遥控器为主机,小车为从机,主机每隔50ms主动发送一次数据,从机不允许发送数据,而是只有在收到主机的数据之后,在随后的50ms之内的时间段里,才允许发送数据

这样从机发送数据总是会在主机发送数据的间隔之中
3.更复杂的同步策略,还是规定主机和从机,主机可以发数据,从机不允许主动发数据,同时对主机发送的数据,进行进一步的上层协议规定

比如主机发送一个数据包的第一个字节,如果为0,表示主机写,后续的数据表示要给从机的数据,这时单纯地主机发送,从机接收就行了,如果为1,表示主机读,后续的数据可以规定为主机想要读什么,主机发送读指令后,开始转入被动接收状态,从机收到读指令后,开始进行主动发送

这样就能协调主机和从机,避免数据碰撞


5.程序移植方法

假设要移植到OLED显示代码上,修改引脚接线如图从右到左,依次就是:CE,接到PA8、CSN,接到PB15、SCK,接到PB14、MOSI,接到PB13、MISO,接到PB12,进入代码工程后配置引脚

第一步:打开资料文件夹,程序源码,V1.0,复制NRF24L01模块代码到OLED显示屏工程Hardware文件下,将OLED模块代码改名为NRF24L01编程示例

第二步:在Keil里,Hardword目录右键,添加现存文件,代码中有注释了解作用

只调用这三个函数就能实现无线通信的功能,最后一个一般不用


指定数据是用这些函数

第三步:在NRF24L01.c中修改引脚

第四步:主函数调用

相关推荐
qq_401700411 小时前
运算放大器电路二、实例分析
单片机·嵌入式硬件
杰出的胡兵1 小时前
MCU中PFD(Power Fail Detect)和PVD(Programmable Voltage Detector)的区别?
单片机·嵌入式硬件
jifengzhiling1 小时前
STM32 ADC规则与注入通道全解析
stm32·mcu·工业自动化·电流环·外设驱动
沐欣工作室_lvyiyi1 小时前
基于单片机的校园路灯智能控制系统(论文+源码)
单片机·嵌入式硬件·毕业设计·校园路灯
纳米软件1 小时前
电源芯片的欠压锁定如何测试,需要哪些设备?-纳米软件
自动化测试·单片机·嵌入式硬件
小李做物联网2 小时前
52.1基于单片机stm32物联网嵌入式项目程序开发智体重秤体脂系统
stm32·单片机·嵌入式硬件·物联网·课程设计
阿容12345613 小时前
stm32两轮平衡小车 -04
stm32·嵌入式硬件
silno16 小时前
图解 STM32 USB CDC虚拟串口 的实现
stm32·单片机·stm32f103c8t6·cdc虚拟串口
Silicore_Emma16 小时前
芯谷科技—D8227 双通道音频功率放大集成电路产品简介与应用推广
单片机·音视频·功率放大器·芯谷科技·便携式音频设备·双通道音频·车载音频系统