void SX1276Init( void ) { // Initialize FSK and LoRa registers structure SX1276 = ( tSX1276* )SX1276Regs; SX1276LR = ( tSX1276LR* )SX1276Regs; SX1276InitIo( ); SX1276Reset( ); // REMARK: After radio reset the default modem is FSK #if ( LORA == 0 ) LoRaOn = false; SX1276SetLoRaOn( LoRaOn ); // Initialize FSK modem SX1276FskInit( ); #else LoRaOn = true; SX1276SetLoRaOn( LoRaOn ); // Initialize LoRa modem SX1276LoRaInit( ); #endif }
/***************************************************************************** Prototype : SX1276Init Description : none Input : void Output : None Return Value : Date : 2014/3/15 Author : Barry *****************************************************************************/ void SX1276Init( void ) { /* Initialize FSK and LoRa registers structure */ /* 这是一个很好的初始化结构体的技巧,把数组名强制转化为指向结构体的指针 */ #if defined(SX1276_FSK) SX1276 = ( tSX1276* )SX1276Regs; #endif #if defined(SX1276_LORA) SX1276LR = ( tSX1276LR* )SX1276Regs; #endif SX1276Reset( ); /* in order to compatible FSK,change LORA to bool variable */ if (LORA) { #if defined(SX1276_LORA) LoRaOn = true; LoRaOnState = false; SX1276SetLoRaOn( LoRaOn ); /* Initialize LoRa modem */ SX1276LoRaInit(); #endif } else { #if defined(SX1276_FSK) LoRaOn = false; LoRaOnState = true; SX1276SetLoRaOn( LoRaOn ); /* Initialize FSK modem */ SX1276FskInit( ); #endif } }