[DemoCode下载] M051与RF24L01通信跳频sample code

[复制链接]
 楼主| MLI_William 发表于 2014-12-3 15:33 | 显示全部楼层 |阅读模式
该应用程序简介:使用两个M051 TinyBoard分别于两个RF24L01模块相连。
两个板子分别烧入发送和接收的代码。一个做发送和一个做接收。
软件介绍:
开发BSP版本:BSP M051_Series_BSP_CMSIS_Rev3.00.001
NRF_24L01.c 与RF模块相关的寄存器定义,RF模块各种功能函数。
NRF_24L01.h  RF模块相关函数头文件
delay.c     延时函数定义
delay.h     延时函数头文件

接收程序:
工作原理:RF模块初始化后,进入接收状态。
使用一个定时器做记录,如果50MS未收到数据,则进行跳频一次。
使用IRQ(外部GPIO)中断,来检测是否有收到数据,如果收到数据,则会产生IRQ中断,在IRQ中断里,如果检测到接收数据标志,就去读取数据,如果第一个数据是0xAA,则计数值uTestRevCount0加1,如果是0x55,则计数值uTestRevCount1加1。
Main()函数的主循环里,每个一秒钟,打印出当前频道,计数值uTestRevCount0和计数值uTestRevCount1的值。


发送程序:
工作原理:RF模块初始化后,进入接收状态,然后去检测下载波信号,看是否有当前的信号,如果有则跳频;如果没有,则初始化要发送值,然后进入发送状态。
IRQ(外部GPIO)中断:用来检测发送数据后的接收状态。
如果收到接收方的ACK信号,则改变数据发送状态为完成。如果没收到ACK信号,则改变状态为超时状态。
Main()函数的主循环,用来判断发送数据的状态,如果当前状态为完成,则再次进入发送模式。如果当前状态为超时状态,则去检测当前频道上是否有载波信号,如果有改变当前的频道值,如果没有,则再进入发送模式。
 楼主| MLI_William 发表于 2014-12-3 15:34 | 显示全部楼层
附件是相应的参考代码

M051_Series_BSP_CMSIS_Rev3.00.001_RFJump.zip

747.91 KB, 下载次数: 251

gaoyang9992006 发表于 2014-12-3 15:39 | 显示全部楼层
下了,学习一下,多学多看,多练。
flybaby111 发表于 2015-9-7 12:20 | 显示全部楼层
谢谢楼主无私分享
czxlly 发表于 2015-9-14 08:25 | 显示全部楼层
谢谢楼主分享。感谢:D
zswa380 发表于 2015-9-22 11:54 | 显示全部楼层
谢谢分享 :)
gejigeji521 发表于 2015-9-23 19:04 | 显示全部楼层
RF模块初始化后,进入接收状态。
huangcunxiake 发表于 2015-9-23 20:08 | 显示全部楼层
Main()函数的主循环里,每个一秒钟,打印出当前频道,计数值uTestRevCount0和计数值uTestRevCount1的值
mintspring 发表于 2015-9-23 21:09 | 显示全部楼层
去检测当前频道上是否有载波信号,如果有改变当前的频道值,如果没有,则再进入发送模式
598330983 发表于 2015-9-23 21:21 | 显示全部楼层
IRQ(外部GPIO)中断:用来检测发送数据后的接收状态。
gejigeji521 发表于 2015-9-29 12:06 来自手机 | 显示全部楼层
调频和跳频是一回事吗。
guo522129 发表于 2015-10-10 17:33 | 显示全部楼层
谢谢楼主贡献,学习
wangzhen2010 发表于 2016-1-25 16:58 | 显示全部楼层
学习一下,向楼主致敬
博学的流氓 发表于 2016-3-9 16:23 | 显示全部楼层
最近在做着部分,学习一下,谢谢楼主
博学的流氓 发表于 2016-10-19 16:10 | 显示全部楼层
谢楼主分享,学习一下
lwd04 发表于 2017-7-5 23:30 | 显示全部楼层
正好用到,先来学习下,太感谢楼主分享了!
huangcunxiake 发表于 2017-7-6 18:02 | 显示全部楼层
参考参考。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

36

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部