void RF_TxData(uint8_t *ucPayload, uint8_t length)
{
CE_HIGH(); // write data to txfifo ;1Mbps 可以延时1ms;250Kbps,延时2ms
RF_WriteBuf(W_TX_PAYLOAD, ucPayload, length);
CE_LOW(); // rf entery tx mode start send data //rf entery stb3
delay_us(1 * 1000);
}
加载完发送FIFO数据后,必须延时1ms以上才能去判断是否发送完成中断位
uint8_t status = RF_GetStatus();
if ((!status) || (status == 0xff))
{
return;
}
if (!rfMode)
{
return;
}
if (status & TX_DS_FLAG)
{
RF_ClearFIFO();
RF_ClearStatus();
rfMode = 0;
rxCb(TX_STA_SECCESS, rfRxPacket);
}
如果不加延时,会出现接收数据混乱,当前收到的数据是上一次发送的