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中修改引脚

第四步:主函数调用

相关推荐
钿驰科技5 分钟前
TC-BL2430无刷电机驱动板在多领域的应用
单片机·嵌入式硬件
boneStudent37 分钟前
BLDC电机无感FOC控制代码实例分享
stm32·单片机·嵌入式硬件
iYun在学C41 分钟前
驱动程序开发(字符设备驱动框架实验)
linux·c语言·嵌入式硬件
悠哉悠哉愿意1 小时前
【嵌入式学习笔记】OLED 显示驱动 (SSD1306)
笔记·单片机·嵌入式硬件·学习
萧技电创EIIA2 小时前
如何使用嘉立创EDA绘制元件
嵌入式硬件·学习·硬件工程·pcb工艺
梁洪飞2 小时前
使用uboot学习I2C
嵌入式硬件·arm
_She0012 小时前
滤波器 变压器 功分器 的笔记
嵌入式硬件
大神与小汪3 小时前
STM32WB55串口蓝牙模块
stm32·单片机·嵌入式硬件
蝎蟹居3 小时前
GBT 4706.1-2024逐句解读系列(25) 第7.5条款:不同电压功率需清晰明确
人工智能·单片机·嵌入式硬件·物联网·安全
独处东汉3 小时前
AI辅助Stm32l031项目开发调试板子之按键跟adc
stm32·单片机·嵌入式硬件