发新帖我要提问
12
返回列表
打印
[51单片机]

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

[复制链接]
楼主: 412820756
手机看帖
扫描二维码
随时随地手机跟帖
21
ningling_21| | 2014-11-28 11:28 | 只看该作者 回帖奖励 |倒序浏览
虾米一代 发表于 2014-11-28 11:09
我的问题是连载波都没接收到,不仅是数据,而且也用示波器看过,都是高电平。。读STATUS也总是0x0e。。有 ...

可以先用430的芯片接收一下看看结果

使用特权

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

你怎么把TX_ADDRESS和RX_ADDRESS设置成一样的啊,这样是不行的啊!!!换一个不一样的试试!!如果配置正确应该是没有问题的

使用特权

评论回复
23
NE5532| | 2014-11-29 11:05 | 只看该作者
楼主不能看中文资料,搞射频不像搞单片机,先把英文资料精读3遍,做到说到啥都知道在哪里,才能动手。

使用特权

评论回复
24
虾米一代| | 2014-11-30 22:39 | 只看该作者
慢慢学 发表于 2014-11-28 13:00
你怎么把TX_ADDRESS和RX_ADDRESS设置成一样的啊,这样是不行的啊!!!换一个不一样的试试!!如果配置正 ...

换了的,还是一样的,然后stm32例程都是发送和接受给一样的地址。。感觉是发送和接收之间的衔接出了问题,因为接收方是用的例程。可能有个关于衔接的部分没设置好

使用特权

评论回复
25
虾米一代| | 2014-11-30 22:41 | 只看该作者
ningling_21 发表于 2014-11-28 11:28
可以先用430的芯片接收一下看看结果

现在没有换430的条件,然后就算用了430,出了问题,没有接收到载波怎么办?不知道是430部分程序没写好还是没有配置好。并且我现在用的是战舰stm32的例程,应该不会有错的。。我在想是不是模块问题,因为现在用的没有晶振,正在网购新的nrf24l01。。可能性很小,因为可以发送,读写寄存器都挺正常的

使用特权

评论回复
26
慢慢学| | 2014-12-1 08:13 | 只看该作者
虾米一代 发表于 2014-11-30 22:39
换了的,还是一样的,然后stm32例程都是发送和接受给一样的地址。。感觉是发送和接收之间的衔接出了问题 ...

那你就看看,在初始化的时候和数据发送前有没有重新设置新的地址,一般情况下,如果发送地址和接受地址一样的话,是会出现问题的(发送后本机接受,因为地址一样)。
个人感觉还是你寄存器配置的问题,模块一般是不会坏的!!

使用特权

评论回复
27
whxbluesky| | 2014-12-1 09:44 | 只看该作者
23楼说的十分在理啊

使用特权

评论回复
28
虾米一代| | 2014-12-13 17:26 | 只看该作者
慢慢学 发表于 2014-12-1 08:13
那你就看看,在初始化的时候和数据发送前有没有重新设置新的地址,一般情况下,如果发送地址和接受地址一 ...

谢谢你的提醒。。模块是没有坏,我也没有买。。我重新又买了一个32.。调试出来了。调试思路是:32发32收,32发DSP收,DSP发32收,最后DSP发DSP收。其中还是碰到了很奇葩的问题,结果后来又好了,表示根本没改什么,可能调试的时候改了点细节的东西没察觉,但是总体没有动。中间隔了几天搞些其他的。谢谢你啦!!

使用特权

评论回复
29
虾米一代| | 2014-12-13 17:28 | 只看该作者
慢慢学 发表于 2014-11-28 13:00
你怎么把TX_ADDRESS和RX_ADDRESS设置成一样的啊,这样是不行的啊!!!换一个不一样的试试!!如果配置正 ...

事实证明,发送地址和接收地址可以一样。。我就是一样的。。

使用特权

评论回复
30
springvirus| | 2015-8-12 11:00 | 只看该作者
本帖最后由 springvirus 于 2015-8-12 11:11 编辑
虾米一代 发表于 2014-12-13 17:26
谢谢你的提醒。。模块是没有坏,我也没有买。。我重新又买了一个32.。调试出来了。调试思路是:32发32收 ...

偶的接收成功,但是buffer里没有数据,什么情况,发送端在发送0x55 0x66 0x77
//接收函数
uint8_t NRF24L01_RxPacket(uint8_t *rxbuf)
{
        uint8_t sta;                                                                              
    //SPI2_SetSpeed(SPI_SPEED_4); //spi速度为9Mhz(24L01的最大SPI时钟为10Mhz)   
        sta=NRF24L01_Read_Reg(NRFRegSTATUS);  //读取状态寄存器的值            
        NRF24L01_Write_Reg(NRF_WRITE_REG+NRFRegSTATUS,sta); //清除TX_DS或MAX_RT中断标志
        if(sta&RX_OK)//接收到数据
        {
                NRF24L01_Write_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//读取数据
                NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除RX FIFO寄存器
                return 0;
        }        
                        
        return 1;//没收到任何数据
        
}        

仔细检查了下,读取数据,应该是 NRF24L01_Read_Buf(),晕,接收正常~

使用特权

评论回复
31
aiwosuoai1992| | 2017-10-13 09:53 | 只看该作者
哪位大神能解惑?发送方发送数据,接收方能正常接收到,但是发送方却接收不到接收方的应答信号

使用特权

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

本版积分规则