打印
[51单片机]

nrf24l01能够接收到载波,却接收不到数据,求助

[复制链接]
9592|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
412820756|  楼主 | 2014-5-2 18:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
412820756|  楼主 | 2014-5-2 20:24 | 只看该作者
求帮助

使用特权

评论回复
板凳
ningling_21| | 2014-5-2 20:28 | 只看该作者
最简单的,使用例程。

如果例程不行,换24L01模块试试看...

使用特权

评论回复
地板
412820756|  楼主 | 2014-5-2 21:53 | 只看该作者
ningling_21 发表于 2014-5-2 20:28
最简单的,使用例程。

如果例程不行,换24L01模块试试看...

模块换了好几个结果都一样。 代码已经差不多就是例程了……

使用特权

评论回复
5
ningling_21| | 2014-5-3 16:27 | 只看该作者
412820756 发表于 2014-5-2 21:53
模块换了好几个结果都一样。 代码已经差不多就是例程了……

硬件有没有问题?  

使用特权

评论回复
6
lirunze| | 2014-5-3 18:56 | 只看该作者
路过学习啊

使用特权

评论回复
7
虾米一代| | 2014-11-26 22:34 | 只看该作者
我也是,发送端status可以使0x2e,接收端咋就接收不到呢????求解.。关键是没有调试思路啊,配置也就是配置成rx_mode();没了,rx_mode();是用的例程。。都是这样写的

使用特权

评论回复
8
NE5532| | 2014-11-26 22:40 | 只看该作者
接收端检测到载波是怎么判断出来的?读RSSI?收到导言的标志?收到同步字的标志??

使用特权

评论回复
9
wujh| | 2014-11-27 01:37 | 只看该作者
遇到这种问题还不如从例程开始一步步改到你需要的方式,在哪一步改动出错就很清楚了。

使用特权

评论回复
10
慢慢学| | 2014-11-27 08:04 | 只看该作者
NE5532 发表于 2014-11-26 22:40
接收端检测到载波是怎么判断出来的?读RSSI?收到导言的标志?收到同步字的标志?? ...

载波检测不是可以通过寄存器地址CD=0X09检测吗???

使用特权

评论回复
11
慢慢学| | 2014-11-27 08:18 | 只看该作者
首先确定寄存器的配置、SPI的操作时序、发送端和接受端的地址信息,

再者你可以再发送端多发几次,看是否能接收到,

使用特权

评论回复
12
虾米一代| | 2014-11-27 16:55 | 只看该作者
慢慢学 发表于 2014-11-27 08:04
载波检测不是可以通过寄存器地址CD=0X09检测吗???

读出来为1是检测到载波?为0没检测到?是这样的么?

使用特权

评论回复
13
慢慢学| | 2014-11-27 17:01 | 只看该作者
虾米一代 发表于 2014-11-27 16:55
读出来为1是检测到载波?为0没检测到?是这样的么?

是的!!

使用特权

评论回复
14
虾米一代| | 2014-11-27 17:17 | 只看该作者
慢慢学 发表于 2014-11-27 17:01
是的!!

我读出来是0。。模块的话,作为发送端,可以发送status=0x2e;线路的连接,刚刚用万用表测了,电路连接良好。。。发送端,读了status为0x2e和FIFO_status为0x11,都是正常的。。那这是什么原因呢??

使用特权

评论回复
15
kseeker| | 2014-11-28 00:53 | 只看该作者
个人感觉地址设置不对的可能最大。可能的话还是完全按照例程试一下比较好。

使用特权

评论回复
16
慢慢学| | 2014-11-28 09:14 | 只看该作者
虾米一代 发表于 2014-11-27 17:17
我读出来是0。。模块的话,作为发送端,可以发送status=0x2e;线路的连接,刚刚用万用表测了,电路连接良 ...

这样的话,说明发送端正常,然后你检查接收端
首先、确认接收端地址是否正确:
      例如发射端地址为:rx[5]={0x01,0x01,0x01,0x01,0x01}
                        tx[5]={0x01,0x01,0x01,0x01,0x02}
          接受端地址为:rx[5]={0x01,0x01,0x01,0x01,0x02}
                        tx[5]={0x01,0x01,0x01,0x01,0x01}
再者、确认发送端和接收端的通道一致,根据你说的,你读出来的是0,说明都没有检测到载波啊,有可能是通道没有设置正确

使用特权

评论回复
17
ningling_21| | 2014-11-28 10:01 | 只看该作者
虾米一代 发表于 2014-11-27 17:17
我读出来是0。。模块的话,作为发送端,可以发送status=0x2e;线路的连接,刚刚用万用表测了,电路连接良 ...

接收端接收到数据是否产生IRQ信号是需要设置的,CONFIG 寄存器

使用特权

评论回复
18
虾米一代| | 2014-11-28 10:56 | 只看该作者
@ningling_21 @慢慢学 没办法,不知道怎么回复的时候添加照片。。检查了这几项CONFIG、RF_SETUP、RF_CH、RX_ADDRESS,都是一致的,另外也检查是否设置成功了(我重新读取写入的寄存器,是对的)。这根单片机类型无关吧。。我是用DSP写发送,stm32写的接受.。

4.png (6.02 KB )

4.png

3.jpg (15.95 KB )

3.jpg

2.png (39.32 KB )

2.png

1.png (29.52 KB )

1.png

使用特权

评论回复
19
ningling_21| | 2014-11-28 11:01 | 只看该作者
虾米一代 发表于 2014-11-28 10:56
@ningling_21 @慢慢学 没办法,不知道怎么回复的时候添加照片。。检查了这几项CONFIG、RF_SETUP、RF_CH、RX ...

可能是STM32这一边的中断没有被识别,可能是STM32没设置正确导致的,可以用示波器测IRQ波形

使用特权

评论回复
20
虾米一代| | 2014-11-28 11:09 | 只看该作者
ningling_21 发表于 2014-11-28 11:01
可能是STM32这一边的中断没有被识别,可能是STM32没设置正确导致的,可以用示波器测IRQ波形 ...

我的问题是连载波都没接收到,不仅是数据,而且也用示波器看过,都是高电平。。读STATUS也总是0x0e。。有点晕了。。想不到什么调试方法啊,接收方就是RX_mode();进行配置,然后就是等待接收数据了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝