[PIC®/AVR®/dsPIC®产品] NRF24L01求助

[复制链接]
4659|51
aerwa 发表于 2016-3-20 12:00 | 显示全部楼层
本帖最后由 aerwa 于 2016-3-20 12:01 编辑

不知道你用的是什么单片机, 支持位操作不, 这是我430的写读返回, 和你的不一样, 你一定要确认SPI 的写读返回单步仿真的时候 MISO的值要能返回出MOSI的值。


unchar SPI_RW(unchar byte)
{
        unsigned char bit_ctr;
      //  P1DIR&=~BIT1;
           for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit
           {
                if((byte&0x80)==0X80)
                {
                  NRF_MOSI=1;
                }
                else NRF_MOSI=0;  // output 'uchar', MSB to MOSI
                byte = (byte << 1);           // // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据
                NRF_SCK=1;                     // Set SCK high..
                if(NRF_MISO)       // 读MISO到byte最低位
                {
                  byte|= 0X01;
                }
               
                NRF_SCK=0;                              // ..then set SCK low again
           }
    return(byte);                             // return read uchar
}
aerwa 发表于 2016-3-20 14:04 | 显示全部楼层
郁闷啊, 还是接收不到, 发送可以, 我重测了 收的校园门禁卡 的电流, 发现电流也很小, 我0DB发送 万用表检测跳变最大是0.47mA, 请问这是发送出来了吧。
接收死活收不到数据, STATUS 寄存器 一直是没有RX 接收标志。
我有个疑问的是 接收模式时,我不管是否接收到,  隔断时间就去读 接收寄存器里的数据, 里面的数据不会清零吧。
JY-DX-JY 发表于 2016-3-20 16:11 | 显示全部楼层
suicune66 发表于 2016-3-20 11:49
嗯,我就是用的读写的,写进去一个读出来,但是写的和读的不是一个数……所以郁闷…… ...

你要看寄存器说明,可能有的位是只读的。
NE5532 发表于 2016-3-21 10:45 | 显示全部楼层
先把SPI接口调通了,再去想发射接收,SPI可以尝试读芯片版本寄存器,直到正确。发射接收调试需要射频仪器,信号发生器和频谱仪才好调,**长征才迈出第一步啊。
MJM_WSY 发表于 2016-3-21 11:06 | 显示全部楼层
suicune66 发表于 2016-3-20 11:50
好的,那我就换成5V供电,那5V的话需不需要接电阻限流?

NRF24L01的IO口支持5V,以前碰到过STC单片机3.3V发射不成功的问题。换了5v的单片机  就好了
 楼主| suicune66 发表于 2016-3-21 11:24 | 显示全部楼层
JY-DX-JY 发表于 2016-3-20 16:11
你要看寄存器说明,可能有的位是只读的。

哦,是看NRF24L01的寄存器么?
 楼主| suicune66 发表于 2016-3-21 11:25 | 显示全部楼层
MJM_WSY 发表于 2016-3-21 11:06
NRF24L01的IO口支持5V,以前碰到过STC单片机3.3V发射不成功的问题。换了5v的单片机  就好了 ...

好滴,那我就直接给他5V不加电阻,谢谢哈
 楼主| suicune66 发表于 2016-3-21 11:26 | 显示全部楼层
本帖最后由 suicune66 于 2016-4-2 18:19 编辑
NE5532 发表于 2016-3-21 10:45
先把SPI接口调通了,再去想发射接收,SPI可以尝试读芯片版本寄存器,直到正确。发射接收调试需要射频仪器, ...

对,我就是这么想的
JY-DX-JY 发表于 2016-3-21 11:26 | 显示全部楼层
suicune66 发表于 2016-3-21 11:24
哦,是看NRF24L01的寄存器么?

是啊。如果哪一位是只读的,那你写进去有可能和读出的不一样。
 楼主| suicune66 发表于 2016-3-21 12:04 | 显示全部楼层
JY-DX-JY 发表于 2016-3-21 11:26
是啊。如果哪一位是只读的,那你写进去有可能和读出的不一样。

好的,多谢指点
NE5532 发表于 2016-3-21 13:44 | 显示全部楼层
你这样调是调不出来的,底层最好自己写,这个跟无线无关,只关单片机的事。写进去要读出来看等于啥,不能一个简单的等不等,要分析读出来的数据的规律,才找得到问题。

评论

非常感谢  发表于 2016-3-22 19:05
 楼主| suicune66 发表于 2016-3-21 14:00 | 显示全部楼层
NE5532 发表于 2016-3-21 13:44
你这样调是调不出来的,底层最好自己写,这个跟无线无关,只关单片机的事。写进去要读出来看等于啥,不能一 ...

哦,那我可不可以这样,就是拿两片单片机,一片读,一片写,然后试试底层?
 楼主| suicune66 发表于 2016-3-21 14:02 | 显示全部楼层
本帖最后由 suicune66 于 2016-4-2 18:16 编辑
aerwa 发表于 2016-3-20 12:00
不知道你用的是什么单片机, 支持位操作不, 这是我430的写读返回, 和你的不一样, 你一定要确认SPI 的写 ...

好的, 我用你的这个试试,谢谢哈
NE5532 发表于 2016-3-21 14:10 | 显示全部楼层
suicune66 发表于 2016-3-21 14:00
哦,那我可不可以这样,就是拿两片单片机,一片读,一片写,然后试试底层? ...

调试SPI,一片单片机就可以了,把MOSI和MOSI短接就可以了,当然不要焊从机芯片。
 楼主| suicune66 发表于 2016-3-21 17:17 | 显示全部楼层
本帖最后由 suicune66 于 2016-4-2 18:16 编辑
NE5532 发表于 2016-3-21 14:10
调试SPI,一片单片机就可以了,把MOSI和MOSI短接就可以了,当然不要焊从机芯片。 ...

JY-DX-JY 发表于 2016-3-21 17:34 | 显示全部楼层
自发自收吧
 楼主| suicune66 发表于 2016-3-21 19:14 | 显示全部楼层
本帖最后由 suicune66 于 2016-4-2 18:20 编辑
好的
JY-DX-JY 发表于 2016-3-21 19:16 | 显示全部楼层
你把那两个脚短接以后,一发送数据自己就收到了。
 楼主| suicune66 发表于 2016-3-21 20:07 | 显示全部楼层
本帖最后由 suicune66 于 2016-4-2 18:17 编辑
JY-DX-JY 发表于 2016-3-21 19:16
你把那两个脚短接以后,一发送数据自己就收到了。


本帖子中包含更多资源

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

×
 楼主| suicune66 发表于 2016-3-21 20:30 | 显示全部楼层
本帖最后由 suicune66 于 2016-4-2 18:17 编辑
JY-DX-JY 发表于 2016-3-21 19:16
你把那两个脚短接以后,一发送数据自己就收到了。

嗯好的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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