这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » NRF24L01收发问题很困惑,请大家指教

共3条 1/1 1 跳转至

NRF24L01收发问题很困惑,请大家指教

助工
2015-09-24 16:42:56     打赏

调试方法从网上看的,要单个高度,先调发送,再调接收,这是发送程序里面的,

SPI_RW_Reg(WRITE_REG + EN_AA, 0x00);//      //   
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x00);// //    

SPI_RW_Reg(WRITE_REG + SETUP_RETR,0x00);//

以上三句在初始函数内,为的是能独立调试发送端,

主函数内有

sta=SPI_Read(STATUS);

 sta=SPI_Read(FIFO_STATUS);

//以上是在装载数据之前读取状态寄存器的值,分别是0x0e,0x11

          nRF24L01_TxPacket(TxBuf); //在其内部看FIFO_STATUS为0x01
 sta=SPI_Read(STATUS);//status=0x2e

 sta=SPI_Read(FIFO_STATUS);//FIFO_status=0x11

          SPI_RW_Reg(WRITE_REG+STATUS,0XFF);   //清状态寄存器
 sta=SPI_Read(STATUS);//status=0x2e
发送端各寄存器的值都是正确的为什么接收不到呢,


菜鸟
2015-09-29 10:32:25     打赏
2楼

调过大半年了,忘了差不多,大概谈一下经历和要点吧:

1.软件和协议上,注意相互之间是否匹配了,这一点有关的寄存器很多,举例一时半会想不起来,比如发射端的目的地址和接收端你想接收的管道(pipeline)地址是否对应,是否都使能了自动应答AutoACK等等,认真研读手册和现成代码吧;

2.硬件电路上,给nRF24L01的VCC电源引脚加一对104瓷片电容和10uF电解电容做旁路退耦。半年前我调试的时候就是这样,网上给的参考例程,死活调不通,后来用逻辑分析仪监视了收发双方的SPI总线,发现收发双方的初始化设置应该都是对的,但是收方在完成一次接受以后,IRQ引脚——通知MCU接收状态的引脚从高拉到低以后不停不断地高低摆动,最后干脆一直是低TAT~;后来收发双方的nRF芯片的电源各加这样一对旁路退耦电容就好了,瞬间调通。

综上所述,示范程序基本没错了你注意以自己是不是改错了程序,有必要的话自己一点一点对着Datasheet学习;二是电源旁路退耦,说不定一加就好了呢


专家
2015-10-04 19:24:31     打赏
3楼
这是我近期调试ok的程序  你参考下 http://forum.eepw.com.cn/thread/276554/1

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]