|
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置位,但我连第一次都检测不到。
|
|