/** * @brief Main program * @param None * @retval None */ int main(void) { /* STM32F4xx HAL library initialization: - Configure the Flash prefetch, instruction and Data caches - Configure the Systick to generate an interrupt each 1 msec - Set NVIC Group Priority to 4 - Global MSP (MCU Support Package) initialization */ HAL_Init(); /* Configure the system clock to 180 MHz */ SystemClock_Config(); /*Initialize the IO module*/ BSP_IO_Init (); /* Configure LED1 and LED3 */ BSP_LED_Init(LED1); BSP_LED_Init(LED3); /*##-1- Link the USB Host disk I/O driver ##################################*/ if(FATFS_LinkDriver(&USBH_Driver, USBDISKPath) == 0) { /*##-2- Init Host Library ################################################*/ USBH_Init(&hUSB_Host, USBH_UserProcess, 0); /*##-3- Add Supported Class ##############################################*/ USBH_RegisterClass(&hUSB_Host, USBH_MSC_CLASS); /*##-4- Start Host Process ###############################################*/ USBH_Start(&hUSB_Host); /*##-5- Run Application (Blocking mode) ##################################*/ while (1) { /* USB Host Background task */ USBH_Process(&hUSB_Host); /* Mass Storage Application State Machine */ switch(Appli_state) { case APPLICATION_START: MSC_Application(); Appli_state = APPLICATION_IDLE; break; case APPLICATION_IDLE: default: break; } } } /* Infinite loop */ while (1) { } }
/** * @brief Main program * @param None * @retval None */ int main(void) { /* STM32F4xx HAL library initialization: - Configure the Flash prefetch, instruction and Data caches - Configure the Systick to generate an interrupt each 1 msec - Set NVIC Group Priority to 4 - Global MSP (MCU Support Package) initialization */ HAL_Init(); /* Configure the system clock to 168 MHz */ SystemClock_Config(); /* Configure LED3 and LED4 */ BSP_LED_Init(LED3); BSP_LED_Init(LED4); /* Configure USER Button */ BSP_PB_Init(BUTTON_KEY, BUTTON_MODE_GPIO); /* Initialize LCD driver */ LCD_Config(); /* Link the USB Host disk I/O driver */ USBDISK_Driver_Num = FATFS_LinkDriver(&USBH_Driver, ""); /* Init Host Library */ if (USBH_Init(&hUSB_Host, USBH_UserProcess, 0) != USBH_OK) { /* USB Initialization Error */ Error_Handler(); } /* Add Supported Class */ USBH_RegisterClass(&hUSB_Host, USBH_MSC_CLASS); /* Start Host Process */ if (USBH_Start(&hUSB_Host) != USBH_OK) { /* USB Initialization Error */ Error_Handler(); } /* Infinite loop */ while (1) { if (Appli_state == APPLICATION_START) { MSC_Application(); } Toggle_Leds(); USBH_Process(&hUSB_Host); } }
/** * @brief Start task * @param pvParameters not used * @retval None */ static void StartThread(void const *argument) { osEvent event; /* Link the USB Host disk I/O driver */ if(FATFS_LinkDriver(&USBH_Driver, USBDISKPath) == 0) { /* Init Host Library */ USBH_Init(&hUSB_Host, USBH_UserProcess, 0); /* Add Supported Class */ USBH_RegisterClass(&hUSB_Host, USBH_MSC_CLASS); /* Start Host Process */ USBH_Start(&hUSB_Host); for( ;; ) { event = osMessageGet(AppliEvent, osWaitForever); if(event.status == osEventMessage) { switch(event.value.v) { case CONNECTION_EVENT: MSC_Application(); break; case DISCONNECTION_EVENT: f_mount(NULL, (TCHAR const*)"", 0); break; default: break; } } } } }