neutronlmk 发表于 2019-12-29 22:51:28

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]
查看完整版本: SX1278 FSK 可变长度数据包发射,总检测不到发射完成。