问题描述
- 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;
}
时间: 2025-01-30 00:55:29