nrf24l01发送和接收地址的问题
我现在搞NRF24L01,从网上下载的程序。用两个板子,一发一收。先在收的上面测试,
先初始化,写缓存,写寄存器。然后,读缓存,
读寄存器,显示在液晶上,都没问题。
然后,一发一收,却收不到。
我有一个问题,就是接收和发送地址的问题。
例子里code ucharTX_ADDRESS= {0x34,0x43,0x10,0x10,0x01};本机地址
code ucharRX_ADDRESS= {0x34,0x43,0x10,0x10,0x01}; 接收地址
我看了一下,有一条初始化语句:
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);
允许接受地址只有频道0。
于是,我改了一下,
code ucharTX_ADDRESS= {0x34,0x43,0x10,0x10,0x00};
code ucharRX_ADDRESS= {0x34,0x43,0x10,0x10,0x00};
还是不行。
改成code ucharTX_ADDRESS= {0x34,0x43,0x10,0x10,0x01};
code ucharRX_ADDRESS= {0x34,0x43,0x10,0x10,0x00};
仍然不行。
接收和发送地址究竟应该怎么设置?
发送程序和接收程序这两个地址应该设置成一样还是不一样?
请高手指教,谢谢! 补充一下,发送和接收程序还有一点不同,发送设为发送模式,接收设为接收模式。 回复【楼主位】chen3bing
-----------------------------------------------------------------------
单向通讯发送方的发送地址和接收方接收地址配成一样的就Ok,发送方的通道0的地址配成和发送地址一样才可接收到应答信号。 没人知道吗? http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_708614EH4BHH.jpg
中文数据手册上的关于地址设置 (原文件名:未命名.jpg) 谢谢!我试试。 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5299938&bbs_page_no=1&search_mode=4&search_text=myqiang1990&bbs_id=9999
楼主,你认真看这个帖子,我回复的部分。。。 多谢楼上。我看了一下,有点明白。
不过,还有一个问题,附件里有个图,
接收端只有接收地址,没写本机地址。
请问接收端还有设置本机地址吗?如何设置?
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_708731I11341.JPG
(原文件名:2.JPG) 现在发送端接收到应答信号了,可接收端还是没有收到数据。 回复【8楼】chen3bing
现在发送端接收到应答信号了,可接收端还是没有收到数据。
-----------------------------------------------------------------------
都收到应答信号了
是你读接收FIFO的程序有问题吧 我又看了一下手册,接收方式时CE=1.
是不是unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
程序里CE应该置位为1?可是置位了以后还是收不到。 http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_708915VA2CW4.png
(原文件名:CE引脚作用.png)
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_708916VLX3M3.png
(原文件名:状态寄存器.png)
收到应答信号应该是收到了,你读状态寄存器,应该有接收位置位以及通道口的数据
如果有,确定是收到了,读取接收FIFO的值就行了 现在可以收到数据,只是接收端要接上下载线才可以,搞不懂。 可以接收数据一小会,又不行了。发现IRQ不能拉低。 回复【13楼】chen3bing
-----------------------------------------------------------------------
接收完后清空FIFO寄存器了吗???记得。。读完FIFO寄存器后。。要用清空FIFO寄存器指令,清空一次FIFO。。。 长进了,正在做这个 这个要顶,不错啊 地址如0x34是怎么得到的?
页:
[1]