[51单片机] nrf24l01能够接收到载波,却接收不到数据,求助

[复制链接]
10882|32
 楼主| 412820756 发表于 2014-5-2 18:47 | 显示全部楼层 |阅读模式
发送端读STATUAS寄存器,不断发生最大重发次数中断,接收端可检测到载波,说明发送端已经发射了信号。但是接收端就是无法产生IRQ中断接到数据,读STATUS寄存器一直为0x0e。这是怎么回事?
 楼主| 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模块试试看...

模块换了好几个结果都一样。 代码已经差不多就是例程了……
ningling_21 发表于 2014-5-3 16:27 | 显示全部楼层
412820756 发表于 2014-5-2 21:53
模块换了好几个结果都一样。 代码已经差不多就是例程了……

硬件有没有问题?  
lirunze 发表于 2014-5-3 18:56 | 显示全部楼层
路过学习啊
虾米一代 发表于 2014-11-26 22:34 | 显示全部楼层
我也是,发送端status可以使0x2e,接收端咋就接收不到呢????求解.。关键是没有调试思路啊,配置也就是配置成rx_mode();没了,rx_mode();是用的例程。。都是这样写的
NE5532 发表于 2014-11-26 22:40 | 显示全部楼层
接收端检测到载波是怎么判断出来的?读RSSI?收到导言的标志?收到同步字的标志??
wujh 发表于 2014-11-27 01:37 | 显示全部楼层
遇到这种问题还不如从例程开始一步步改到你需要的方式,在哪一步改动出错就很清楚了。
慢慢学 发表于 2014-11-27 08:04 | 显示全部楼层
NE5532 发表于 2014-11-26 22:40
接收端检测到载波是怎么判断出来的?读RSSI?收到导言的标志?收到同步字的标志?? ...

载波检测不是可以通过寄存器地址CD=0X09检测吗???
慢慢学 发表于 2014-11-27 08:18 | 显示全部楼层
首先确定寄存器的配置、SPI的操作时序、发送端和接受端的地址信息,

再者你可以再发送端多发几次,看是否能接收到,
虾米一代 发表于 2014-11-27 16:55 | 显示全部楼层
慢慢学 发表于 2014-11-27 08:04
载波检测不是可以通过寄存器地址CD=0X09检测吗???

读出来为1是检测到载波?为0没检测到?是这样的么?
慢慢学 发表于 2014-11-27 17:01 | 显示全部楼层
虾米一代 发表于 2014-11-27 16:55
读出来为1是检测到载波?为0没检测到?是这样的么?

是的!!
虾米一代 发表于 2014-11-27 17:17 | 显示全部楼层
慢慢学 发表于 2014-11-27 17:01
是的!!

我读出来是0。。模块的话,作为发送端,可以发送status=0x2e;线路的连接,刚刚用万用表测了,电路连接良好。。。发送端,读了status为0x2e和FIFO_status为0x11,都是正常的。。那这是什么原因呢??
kseeker 发表于 2014-11-28 00:53 | 显示全部楼层
个人感觉地址设置不对的可能最大。可能的话还是完全按照例程试一下比较好。
慢慢学 发表于 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,说明都没有检测到载波啊,有可能是通道没有设置正确
ningling_21 发表于 2014-11-28 10:01 | 显示全部楼层
虾米一代 发表于 2014-11-27 17:17
我读出来是0。。模块的话,作为发送端,可以发送status=0x2e;线路的连接,刚刚用万用表测了,电路连接良 ...

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ningling_21 发表于 2014-11-28 11:01 | 显示全部楼层
虾米一代 发表于 2014-11-28 10:56
@ningling_21 @慢慢学 没办法,不知道怎么回复的时候添加照片。。检查了这几项CONFIG、RF_SETUP、RF_CH、RX ...

可能是STM32这一边的中断没有被识别,可能是STM32没设置正确导致的,可以用示波器测IRQ波形
虾米一代 发表于 2014-11-28 11:09 | 显示全部楼层
ningling_21 发表于 2014-11-28 11:01
可能是STM32这一边的中断没有被识别,可能是STM32没设置正确导致的,可以用示波器测IRQ波形 ...

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

本版积分规则

1

主题

5

帖子

0

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