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

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级,可以去试试

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据