今天用同事的2个NRF24L01找了个例程在板上试,主机发送数据,从机接受得到,但是主机里面调用函数u8 NRF_Tx_Dat(u8 *txbuf)里面卡住了,会不会是IRQ引脚问题呢? IRQ引脚我设置为上拉,理论上是发送和接受完后IRQ变低电平。
SPI_RW_Reg(WRITE_REG1 + CONFIG, 0x0e); TX_mode()
SPI_RW_Reg(WRITE_REG1 + CONFIG, 0x0f); RX_mode()
原子哥,求不吝赐教。
u8 NRF_Tx_Dat(u8 *txbuf)
{
u8 state;
NRF_CE_LOW();
SPI_NRF_WriteBuf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH); //到这里发送都是正常的,但是我检测返回就是没有。
NRF_CE_HIGH();
while(NRF_Read_IRQ()!=0);
state = SPI_NRF_ReadReg(STATUS);
SPI_NRF_WriteReg(NRF_WRITE_REG+STATUS,state);
SPI_NRF_WriteReg(FLUSH_TX,NOP);
if(state&MAX_RT)
return MAX_RT;
else if(state&TX_DS)
return TX_DS;
else
return ERROR;
}