int main(void) { GPIO_InitTypeDef GPIO_InitStructure; SD_Error sderr; SD_CardInfo ci; // All GPIO clock enable RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE, ENABLE); // Configure LEDs in output pushpull mode GPIO_InitStructure.GPIO_Pin = LED_PIN_ALL; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(LED_GPIO, &GPIO_InitStructure); // Configure SysTick for 400ms period if(!tick_start(400.0)) { while(1); } /* if((SD_Init() == SD_OK) && SD_Detect()){ sderr = SD_GetCardInfo(&ci); if(sderr == SD_OK){ while(1); } } */ lsm303_init(); l3gd20_init(); while (1) { tick_wait(1); l3gd20_read_sync(); lsm303_read(); } }
int main() { GPIO_InitTypeDef GPIO_InitDef; SystemClock_Config(); SystemCoreClockUpdate(); HAL_Init(); /* driver init */ lsm303dlhc_init(); l3gd20_init(); osKernelInitialize(); Init_Timers(); handlerThread_id = osThreadCreate(osThread(handlerThread), NULL); gyroHandlerThread_id = osThreadCreate(osThread(gyroHandlerThread), NULL); visioThread_id = osThreadCreate(osThread(visioThread), NULL); accelBuffer_mutex_id = osMutexCreate(osMutex(accelBuffer_mutex)); gyroBuffer_mutex_id = osMutexCreate(osMutex(gyroBuffer_mutex)); // enable clock for GPIOE //__HAL_RCC_GPIOE_CLK_ENABLE(); // init GPIO pin GPIO_InitDef.Pin = GPIO_PIN_9; GPIO_InitDef.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitDef.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOE, &GPIO_InitDef); // set LD3 HAL_GPIO_WritePin(GPIOE, GPIO_PIN_9, GPIO_PIN_SET); osKernelStart(); }