示例#1
0
文件: main.c 项目: mcu786/iMU
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();
    }
}
示例#2
0
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();
}