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

第四步:主函数调用

相关推荐
fie88891 天前
基于51单片机的航模遥控器6通道接收机程序
单片机·嵌入式硬件·51单片机
bu_shuo1 天前
嵌入式硬件工程师VS单板硬件工程师
嵌入式硬件·电子工程师·单板硬件
llilian_161 天前
选择北斗导航卫星信号模拟器注意事项总结 北斗导航卫星模拟器 北斗导航信号模拟器
功能测试·单片机·嵌入式硬件·测试工具·51单片机·硬件工程
Yyq130208696821 天前
MH2457,‌国产 32 位屏驱 MCU‌芯片,支持‌1080P 高清显示‌与‌以太网通信‌,广泛应用于两轮车仪表盘及工控屏等领域
单片机·嵌入式硬件
爱分享的阿Q1 天前
STM32现代化AI开发环境搭建:从Keil到VSCode+AI的范式转移
人工智能·vscode·stm32
爱吃程序猿的喵1 天前
南邮计科电工电子实验B《RLC串联谐振电路》实验报告
单片机·嵌入式硬件
独小乐1 天前
009.中断实践之实现按键测试|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·驱动开发·笔记·嵌入式硬件·arm
XINVRY-FPGA1 天前
XC7VX690T-2FFG1157I Xilinx AMD Virtex-7 FPGA
arm开发·人工智能·嵌入式硬件·深度学习·fpga开发·硬件工程·fpga
bubiyoushang8881 天前
利用STM32实现Modbus通信(RTU从机方案)
stm32·单片机·嵌入式硬件
cmpxr_1 天前
【单片机】常用设计模式
单片机·嵌入式硬件·设计模式