/*====================================================================================================*/ void System_Init( void ) { MPU_InitTypeDef MPU_InitStruct; CLOCK_SourceXTAL(NRF_CLOCK_XTALFREQ_16MHz); CLOCK_SourceLFCLK(NRF_CLOCK_LF_SRC_RC); CLOCK_CmdHFCLK(ENABLE); CLOCK_CmdLFCLK(ENABLE); GPIO_Config(); Serial_Config(); MPU9250_Config(); Delay_100ms(1); printf("\r\nHello World!\r\n\r\n"); MPU_InitStruct.MPU_Gyr_FullScale = MPU_GyrFS_2000dps; MPU_InitStruct.MPU_Gyr_LowPassFilter = MPU_GyrLPS_41Hz; MPU_InitStruct.MPU_Acc_FullScale = MPU_AccFS_4g; MPU_InitStruct.MPU_Acc_LowPassFilter = MPU_AccLPS_41Hz; printf("MPU9250 Init ..."); if(MPU9250_Init(&MPU_InitStruct) != SUCCESS) { printf("ERROR\r\n"); while(1) { LED2_Toggle(); Delay_100ms(1); } } printf("SUCCESS\r\n"); LED2_Set(); Delay_100ms(1); }
/*====================================================================================================*/ void Sensor_Init( void ) { MPU_InitTypeDef MPU_InitStruct; Acc.X = 0; Acc.Y = 0; Acc.Z = 0; Acc.OffsetX = 0; Acc.OffsetY = 0; Acc.OffsetZ = 0; Acc.TrueX = 0.0f; Acc.TrueY = 0.0f; Acc.TrueZ = 0.0f; Gyr.X = 0; Gyr.Y = 0; Gyr.Z = 0; Gyr.OffsetX = 0; Gyr.OffsetY = 0; Gyr.OffsetZ = 0; Gyr.TrueX = 0.0f; Gyr.TrueY = 0.0f; Gyr.TrueZ = 0.0f; #ifdef USE_SENSOR_MAG Mag.X = 0; Mag.Y = 0; Mag.Z = 0; Mag.AdjustX = 0; Mag.AdjustY = 0; Mag.AdjustZ = 0; Mag.TrueX = 0.0f; Mag.TrueY = 0.0f; Mag.TrueZ = 0.0f; #endif Temp.T = 0; Temp.OffsetT = TEMP_OFFSET; Temp.TrueT = 0.0f; #ifdef USE_SENSOR_BARO Baro.Temp = 0.0f; Baro.Press = 0.0f; Baro.Height = 0.0f; #endif MPU_InitStruct.MPU_Gyr_FullScale = MPU_GyrFS_2000dps; MPU_InitStruct.MPU_Gyr_LowPassFilter = MPU_GyrLPS_250Hz; MPU_InitStruct.MPU_Acc_FullScale = MPU_AccFS_4g; MPU_InitStruct.MPU_Acc_LowPassFilter = MPU_AccLPS_184Hz; MPU9250_Init(&MPU_InitStruct); #ifdef USE_SENSOR_BARO MS5611_Init(); #endif }
/** * @brief Main program * @param None * @retval None */ int main(void) { uint8_t initSuccess; uint8_t mpuData[14]; initSuccess = 0; NVIC_Config(); STM_EVAL_COMInit(); USART_Configuration(9600); USART_ITConfig(USART1,USART_IT_RXNE, ENABLE); initSuccess = MPU9250_Init(); while (initSuccess) { MPU9250_ReadValue(mpuData); USART_SendDataArray(USART1,mpuData); Delay(0xFFFF); } }