OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【呕血的心得,结贴】nRF24L01调试的问题,大神乱入

共25条 2/3 1 2 3 跳转至
高工
2014-04-10 00:33:38    评分
11楼

nRF24L01调试有2天了,还是卡在接收方中断信号无法正常输出的问题上。

完成nRF20L01的配置后,再读取回来

看从串口工具上撸下来的信息

飞行器(发送)端:

遥控器(接收)端:

串口工具打印的信息表明

nRF24L01的配置信息已经完全写进器件,也就是说配置成功

并且能够检测到nRF24L01的在线情况

说明SPI的设置没有问题

两端的配置也完全匹配。

值得注意的是,遥控器(接收)端,已经能够检测到对应通道的射频信号(CD is 0x01

但是遥控器(接收)端死活不产生中断(STATUS is 0x0e)

头大啊......


高工
2014-04-13 23:32:05    评分
12楼

整整花了4天时间在调试这个小小的模块上面

这么个小东西,真的不能小瞧啊

虽然花了这么多时间,但是至今依然无法得到令自己满意的结果

不过基本的通信,问题是解决了

这里简单分享一下个人的调试心得。

1、寄存器的配置

一定要仔细核对,最好是用串口或者LCD显示出来,要不然根本不知道配置是否成功。

当然,收发双方的配置要对应一致才行。

2、延时

这次又栽倒在延时函数上,不是延时函数不精确,而是数据手册带来的误导

数据手册上CE端拉高,延迟130us后就可以完成发射/接收,发射模式和接收模式切换保证在1.5ms以上

其实亲测这个时间根本不行

整整2天被困扰在延时函数上,模块总是能够检测到对应频点通道射频信号,但是无法接收到数据

后来一咬牙,所有延时全部提升至ms级,神马问题立即烟消云散

baidu了一下,居然有几位哥们儿和我情况一样,这里给跪了......

得特西特呀,你叫我该怎么办?

3、调试

这里借鉴了互联网的一些高手的经验,个人觉得很有用,这里重复提一下。

以调试通道0的通信为例。


先调试发射端,禁用自动应答、禁用接收、禁用自动重发,然后在主函数里面重复发送数据

这个时候,STATUS应该返回0x2eFIFO_STATUS应该返回0x11


发射端在上述条件下不断发送数据,同时进行接收端的调试

接收端禁用通道0自动应答、使能接收通道0

在这种情况下,接收端的STATUS应该返回0x40


调试到这里,基本上算是通了,但是这种没有  握手?应答? 的通信,是不可靠、不安全的通信

所以最终把上面调试时候禁用的功能再打开,基本上没有太大问题了的。

4、不要过分相信IDE的复位运行功能,要多尝试下载后,断电复位运行。


基本功能实现了,现在存在的问题是接收16个字节以上的数据就开始乱码,最新进展请关注:http://forum.eepw.com.cn/thread/249382/1

不日将更新

最近实在是不想调试这货了,似乎有点疲劳了,想先放一段时间。


是不是应该直接移植开源代码,还是自己慢慢模仿着写下去?

这个才是最大的问题。


高工
2014-04-14 00:09:45    评分
13楼
学习了,楼主精神让人佩服!

高工
2014-04-29 15:17:09    评分
14楼

今天当上版主了,很开心~

你的坚持很棒,现在的专研精神越来越少见了。

很多东西还要向你学习啊,嘿嘿!请多指教!


高工
2014-04-30 22:59:56    评分
15楼
指教谈不上 一学电子深似海 大家共同学习

高工
2014-04-30 23:20:47    评分
16楼
嗯嗯,共同学习。签名很不错啊“学中取乐,书山有路先干为敬,学海无涯八宝做粥。。”

菜鸟
2014-07-05 22:50:42    评分
17楼
正好在调2401,谢谢楼主共享经验

菜鸟
2016-11-25 12:26:36    评分
18楼
丁丁

专家
2016-11-25 12:37:56    评分
19楼
IO未配置好哟。

菜鸟
2016-12-13 16:52:50    评分
20楼

共25条 2/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]