STM32
登录
直播中
胖子的逆袭
12年用户
1116经验值
私信
关注
[问答]
NRF24L01模块调试经验分享
开启该帖子的消息推送
nRF24L01
模块
寄存器
如何对NRF24L01模块进行调试呢?NRF24L01模块调试的经验有哪些呢?
回帖
(1)
王芳
2021-12-16 10:18:12
个人对NRF24L01模块的调试经验
1. CE引脚的使用:
CE是芯片使能引脚,也就是说一般都是1,只有两种情况会清0。
① 芯片上电初始化前清0,初始化完置1。
② 发送、接收模式互相转换时需要写寄存器CONFIG(0x00),写前清0,写完置1。
注:转换成发送模式完成时会立即发送一次数据(未验证)。
2. 芯片初始化:
芯片初始化后最好先读一次RD_RX_PLOAD(0x61)寄存器,这是为了清空接收缓冲区,否则后面可能出现意想不到的错误。
3. STATUS(0x07)寄存器:
注意这个寄存器是写1清零,网上有些示例代码是错的。
发送必须将MAX_RT为清0,否则可能发不出去。
有可能RX_P_NO显示收到数据,但RX_DR迟迟读不到1。推测是设置成接收模式后立刻清除STATUS寄存器导致将RX_DR误清掉了(未验证)。
4. 发送、接收:
发送、接收模式转换时有转换时间,在不检查STATUS的通信中需要设置足够的延时才能正常收发数据。
上面也说了,只有模式转换的时候才需要设置CE引脚。所以连续发送时,只需要将数据写入缓冲区并清除STATUS寄存器即可,多余的CE引脚操作只会影响通信效率。有些资料对这里表达并不正确。
个人对NRF24L01模块的调试经验
1. CE引脚的使用:
CE是芯片使能引脚,也就是说一般都是1,只有两种情况会清0。
① 芯片上电初始化前清0,初始化完置1。
② 发送、接收模式互相转换时需要写寄存器CONFIG(0x00),写前清0,写完置1。
注:转换成发送模式完成时会立即发送一次数据(未验证)。
2. 芯片初始化:
芯片初始化后最好先读一次RD_RX_PLOAD(0x61)寄存器,这是为了清空接收缓冲区,否则后面可能出现意想不到的错误。
3. STATUS(0x07)寄存器:
注意这个寄存器是写1清零,网上有些示例代码是错的。
发送必须将MAX_RT为清0,否则可能发不出去。
有可能RX_P_NO显示收到数据,但RX_DR迟迟读不到1。推测是设置成接收模式后立刻清除STATUS寄存器导致将RX_DR误清掉了(未验证)。
4. 发送、接收:
发送、接收模式转换时有转换时间,在不检查STATUS的通信中需要设置足够的延时才能正常收发数据。
上面也说了,只有模式转换的时候才需要设置CE引脚。所以连续发送时,只需要将数据写入缓冲区并清除STATUS寄存器即可,多余的CE引脚操作只会影响通信效率。有些资料对这里表达并不正确。
举报
更多回帖
rotate(-90deg);
回复
相关问答
nRF24L01
模块
寄存器
NRF24L01
无线
模块
资料哪里有
2020-05-29
1094
NRF24L01
的天线怎么绘制?
2020-06-02
2613
如何解决
nRF24L01
模块
设计和
调试
遇到的问题?
2021-12-17
1139
求大佬分享2.4G
模块
NRF24L01
调试
经验
2021-12-20
812
如何解决STM32
调试
NRF24L01
模块
无线收发通信遇到的问题?
2021-12-17
1039
NRF24L01
模块
2018-01-27
3483
NRF24L01
无线通信
模块
使用示例和
调试
心得分享
2021-12-17
1826
NRF24L01
的
调试
经验
分享
2020-06-10
1448
怎样使用
NRF24L01
2.4G射频
模块
去
调试
demo代码呢
2021-12-16
832
NRF24L01
模块
程序的接收与发送有何区别呢
2021-12-16
890
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分