目录
第一步:打开资料文件夹,程序源码,V1.0,复制NRF24L01模块代码到OLED显示屏工程Hardware文件下,将OLED模块代码改名为NRF24L01编程示例
第二步:在Keil里,Hardword目录右键,添加现存文件,代码中有注释了解作用
通过网盘分享的文件: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中修改引脚







第四步:主函数调用




