SX1278 FSK 可变长度数据包发射,总检测不到发射完成。
void SX1276_Fsk_SendPacket_Var( INT8U *buffer, INT8U size ){
uint8_t u8_ReadData;
if( size )
{
SX1276_Fsk_SetDataMode( DATA_MODE_PACKET );//packet model
SX1276_Fsk_SetPacketFormat( PKT_FORMAT_VARIABLE );//variable packet length
SX1276_WriteReg( REG_DIOMAPPING1, DEF_DIOMAPPING1 | RF_DIOMAPPING1_DIO0_00//PacketSent
| RF_DIOMAPPING1_DIO1_00//FifoLevel
| RF_DIOMAPPING1_DIO2_00//FifoFull
| RF_DIOMAPPING1_DIO3_01 );//TxReady
SX1276_WriteReg( REG_DIOMAPPING2, DEF_DIOMAPPING2 | RF_DIOMAPPING2_DIO4_00//LowBat
| RF_DIOMAPPING2_DIO5_10 );//Data
SX1276_SetSwitchTx( );
SX1276_Fsk_SetMode( FSK_MODE_TX );//Tx model
do
{
u8_ReadData = SX127X_ReadReg(0x3E);
}while (!(u8_ReadData & 0x80)); /* RegIrqFlags1-Waits until TxReady*/
SX1276_WriteFifo( ( INT8U* )&size, 1 );//length byte
SX1276_WriteFifo( buffer, size );
do
{
u8_ReadData = SX127X_ReadReg(0x3F);
}while (!(u8_ReadData & 0x08)); /* RegIrqFlags2-等待PacketSent置位(Waits until tx done)*/
}
}
始终等不到PacketSent置位。
网上有前人指两个数据之间发射间隔需要大于7MS,否则检测不到第二次的PacketSent置位,但我连第一次都检测不到。
页:
[1]