mt1875387857 2015-05-04 16:07 采纳率: 0%
浏览 5695

nrf2401接收数据后状态寄存器STATUS值为0X0E是怎么回事

发送完全正常,但接收不到
接收部分代码:
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
{
unsigned char revale=0;
u8 status;

//sta=SPI_Read(STATUS); // 读取状态寄存其来判断数据接收状况
status=SPI_Read(READ_REG1+STATUS);          // 读取状态寄存其来判断数据接收状况

if(status & 0x40)               // 判断是否接收到数据
{
    MODE_CE(0);             //SPI使能
    //SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer
    SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);  //从接收缓冲区里读出数据

    //rx_buf[1]=1;
    revale =1;          //读取数据完成标志
}
//SPI_RW_Reg(WRITE_REG+STATUS,sta);   //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志
SPI_RW_Reg(WRITE_REG1+STATUS, status);       //清除07寄存器标志
return revale;

}

  • 写回答

1条回答 默认 最新

  • 飞飞大帅 2017-11-21 06:37
    关注

    时序问题或者加长延迟时间
    数据手册上CE端拉高,延迟130us后就可以完成发射/接收,发射模式和接收模式切换保证在1.5ms以上
    其实亲测这个时间根本不行
    所有延时全部提升至ms级,可以去试试

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!