我最近在做一个近距离监控装置 用nrf24l01 模块 一个2.4G模块需要在接受和发送消息之间相互切换。
我的遇到的问题是 当我从接收模式RX_Mode()切换到发送模式TX_Mode()后,程序一直停在这个函数NRF24L01_TxPacket(tmp_buf)里面,主要是停在while(NRF24L01_IRQ!=0)//等待发送完成这个函数里面
而我直接使用发送模式就没有这个问题,有人碰到过这样的问题吗??我用的是发烧友的代码
这个是NRF24L01_TxPacket()函数
u8 NRF24L01_TxPacket(u8 *txbuf)
{
u8 sta;
SPIx_SetSpeed(SPI_BaudRatePrescaler_8);
Clr_NRF24L01_CE;
NRF24L01_Write_Buf(NRF24L01_WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);
Set_NRF24L01_CE;
while(NRF24L01_IRQ!=0); //程序就停在这里了!!!!
sta=NRF24L01_Read_Reg(STATUS);
NRF24L01_Write_Reg(NRF24L01_WRITE_REG+STATUS,sta);
if(sta&MAX_TX)
{
NRF24L01_Write_Reg(NRF24L01_FLUSH_TX,0xff);
return MAX_TX;
}
if(sta&TX_OK)
{
return TX_OK;
}
return 0xff;
}