/** * @brief Handles CDC Receive Menu. * @param None * @retval None */ void CDC_Handle_Receive_Menu(void) { switch(CdcDemo.Receive_state) { case CDC_RECEIVE_IDLE: /* Start Reception */ LCD_LOG_ClearTextZone(); CdcDemo.Receive_state = CDC_RECEIVE_WAIT; USBH_CDC_Stop(&hUSBHost); LCD_DbgLog("Receiving data ...\n"); xPos = 0; yLinePos = 5; memset(CDC_RX_Buffer, 0, RX_BUFF_SIZE); USBH_CDC_Receive(&hUSBHost, CDC_RX_Buffer, RX_BUFF_SIZE); BSP_LCD_ClearStringLine(19); BSP_LCD_SetTextColor(LCD_COLOR_GREEN); BSP_LCD_DisplayStringAtLine(19, (uint8_t *)"Press User button to start sending data "); break; case CDC_RECEIVE_WAIT: if((BSP_PB_GetState(BUTTON_KEY) == SET) && (Appli_state != APPLICATION_DISCONNECT)) { CdcDemo.state = CDC_DEMO_WAIT; CdcDemo.Receive_state = CDC_RECEIVE_IDLE; } break; default: break; } }
/** * @brief Handles CDC Receive Menu. * @param None * @retval None */ void CDC_Handle_Receive_Menu(void) { switch(CdcDemo.Receive_state) { case CDC_RECEIVE_IDLE: CdcDemo.Receive_state = CDC_RECEIVE_WAIT; CDC_SelectItem(DEMO_RECEIVE_menu, 0); CdcDemo.select = 0; USBH_CDC_Stop(&hUSBHost); BSP_LCD_SetTextColor(LCD_COLOR_GREEN); BSP_LCD_DisplayStringAtLine(14, (uint8_t *)" "); BSP_LCD_DisplayStringAtLine(15, (uint8_t *)"Use [Buttons Left/Right] to scroll up/down"); break; case CDC_RECEIVE_WAIT: if(CdcDemo.select != PrevSelect) { PrevSelect = CdcDemo.select; CDC_SelectItem(DEMO_RECEIVE_menu, CdcDemo.select & 0x7F); /* Handle select item */ if(CdcDemo.select & 0x80) { switch(CdcDemo.select & 0x7F) { case 0: BSP_LCD_SetTextColor(LCD_COLOR_WHITE); /* Start Reception */ LCD_ClearTextZone(); BSP_LCD_DisplayStringAtLine(3, (uint8_t *)"Receiving data ..."); xPos = 0; yLinePos = 4; memset(CDC_RX_Buffer, 0, RX_BUFF_SIZE); USBH_CDC_Receive(&hUSBHost, CDC_RX_Buffer, RX_BUFF_SIZE); CdcDemo.Receive_state = CDC_RECEIVE_WAIT; break; case 1: BSP_LCD_SetTextColor(LCD_COLOR_WHITE); USBH_CDC_Stop(&hUSBHost); ReturnFromReceiveMenu(); break; default: break; } } } break; default: break; } CdcDemo.select &= 0x7F; }
/** * @brief CDC data receive callback. * @param phost: Host handle * @retval None */ void USBH_CDC_ReceiveCallback(USBH_HandleTypeDef *phost) { DumpReceivedData(); USBH_CDC_Receive(&hUSBHost, CDC_RX_Buffer, RX_BUFF_SIZE); }