unsigned char Si4438_Tx__Config(void) { GPIO_InitTypeDef GPIO_InitStructure; SetHighRate(); //设置成高速率模式 //配置相应发送GPIO口 GPIO_InitStructure.GPIO_Pin = TX_DATA_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(TX_DATA_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = TX_CLK_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(TX_CLK_PORT, &GPIO_InitStructure); si446x_change_state(SI446X_CMD_CHANGE_STATE_ARG_NEW_STATE_ENUM_READY); si4438_phy.RF_status=RF_IDLE_FLAG; NVIC_DisableIRQ(GDIO1_EXTI_IRQn); NVIC_DisableIRQ(GDIO0_EXTI_IRQn); if (SI446X_SUCCESS != si446x_configuration_init(DirectModefiguration)) { DBUG("Si4438_Tx__Config fail\r\n"); wireless_phy_init(); return 0; } return 1; }
void vRadio_Init(void) { volatile unsigned int tick_tmp; unsigned char times=0; /* Power Up the radio chip */ si446x_reset(); // si446x_apply_patch(); // vRadio_PowerUp(); #ifdef SI446X_PATCH_CMDS if( si446x_apply_patch()==SI446X_SUCCESS) { DBUG("si446x_apply_patch SI446X_SUCCESS \r\n"); si446x_power_up(0x01,0x00,0x01C9C380); } else { DBUG("si446x_apply_patch fail \r\n"); si446x_power_up(0x01,0x00,0x01C9C380); } #else DBUG(" no si446x_apply_patch \r\n"); si446x_power_up(0x01,0x00,0x01C9C380); #endif /* Load radio configuration */ si4438_phy.SI4438_reset_flag=1; while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray)) { times++; if(times>4) { si4438_phy.SI4438_reset_flag=0; DBUG("si446x_configuration_init fail"); break; } Iwdg_Init(); tick_tmp=GET_SYS_TICK; while(GET_SYS_TICK < (tick_tmp+TICK_50MS)); SI4438_Config(); si446x_reset(); } // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); }
/*! * Radio Initialization. * * @author Sz. Papp * * @note * */ void vRadio_Init(void) { /* Power Up the radio chip */ vRadio_PowerUp(); /* Load radio configuration */ while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray)) { /* Error hook */ BSP_LedSet(0); Delay(2); BSP_LedClear(0); /* Power Up the radio chip */ vRadio_PowerUp(); } // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); }
/*! * Radio Initialization. * * @author Sz. Papp * * @note * */ void vRadio_Init(void) { U16 wDelay; /* Power Up the radio chip */ vRadio_PowerUp(); /* Load radio configuration */ while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray)) { /* Error hook */ for (wDelay = 0x7FFF; wDelay--; ) ; /* Power Up the radio chip */ vRadio_PowerUp(); } // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); }
void vRadio_Init(void) { U16 wDelay; /* Power Up the radio chip */ vRadio_PowerUp(); /* Load radio configuration */ while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray)) { for (wDelay = 0x7FFF; wDelay--; ) ; /* Power Up the radio chip */ vRadio_PowerUp(); } // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); si446x_fifo_info(SI446X_CMD_FIFO_INFO_ARG_RX_BIT); }
/*! * Radio Initialization. * * @author Sz. Papp * * @note * */ void vRadio_Init(void) { U16 wDelay; /* Power Up the radio chip */ vRadio_PowerUp(); /* Load radio configuration */ while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray)) { /* Error hook */ #if !(defined SILABS_PLATFORM_WMB912) LED4 = !LED4; #else vCio_ToggleLed(eHmi_Led4_c); #endif for (wDelay = 0x7FFF; wDelay--; ) ; /* Power Up the radio chip */ vRadio_PowerUp(); } // Read ITs, clear pending ones si446x_get_int_status(0u, 0u, 0u); }