/** * @brief Changes the selection mode. * @param select_mode: Selection mode * @retval None */ void CDC_ChangeSelectMode(CDC_DEMO_SelectMode select_mode) { if(select_mode == CDC_SELECT_CONFIG) { LCD_ClearTextZone(); CDC_SelectItem(DEMO_CONFIGURATION_menu, 0xFF); CdcSettingsState.select = 0; CDC_SelectSettingsItem(0); } else if(select_mode == CDC_SELECT_FILE) { CDC_SelectItem(DEMO_SEND_menu, 0xFF); CdcSettingsState.select = 0; } else if(select_mode == CDC_SELECT_MENU) { if(CdcDemo.state == CDC_DEMO_CONFIGURATION) { CDC_SelectSettingsItem(0xFF); CDC_SelectItem(DEMO_CONFIGURATION_menu, 0); } if(CdcDemo.state == CDC_DEMO_SEND) { CDC_SelectItem(DEMO_SEND_menu, 1); } } CdcSelectMode = select_mode; CdcDemo.select = 0; }
/** * @brief Adjusts CDC configuration setting Menu. * @param None * @retval None */ void CDC_AdjustSettingMenu(void) { uint8_t str_temp[40]; BSP_LCD_SetBackColor(LCD_COLOR_MAGENTA); if(CdcSettingsState.select != PrevSelect) { PrevSelect = CdcSettingsState.select; CDC_SelectSettingsItem(CdcSettingsState.select); } if(CdcSettingsState.settings.BaudRateIdx != Prev_BaudRateIdx) { Prev_BaudRateIdx = CdcSettingsState.settings.BaudRateIdx; if(BaudRateValue[CdcSettingsState.settings.BaudRateIdx] <= 9600) sprintf((char *)str_temp, " %lu", BaudRateValue[CdcSettingsState.settings.BaudRateIdx]); else if(BaudRateValue[CdcSettingsState.settings.BaudRateIdx] <= 57600) sprintf((char *)str_temp, " %lu", BaudRateValue[CdcSettingsState.settings.BaudRateIdx]); else sprintf((char *)str_temp, " %lu", BaudRateValue[CdcSettingsState.settings.BaudRateIdx]); BSP_LCD_DisplayStringAtLine(9, str_temp); LineCoding.b.dwDTERate = BaudRateValue[CdcSettingsState.settings.BaudRateIdx]; } if(CdcSettingsState.settings.DataBitsIdx != Prev_DataBitsIdx) { Prev_DataBitsIdx = CdcSettingsState.settings.DataBitsIdx; sprintf((char *)str_temp, " %d", DataBitsValue[CdcSettingsState.settings.DataBitsIdx]); BSP_LCD_DisplayStringAtLine(10, str_temp); LineCoding.b.bDataBits = DataBitsValue[CdcSettingsState.settings.DataBitsIdx]; } if(CdcSettingsState.settings.ParityIdx != Prev_ParityIdx) { Prev_ParityIdx = CdcSettingsState.settings.ParityIdx; if(CdcSettingsState.settings.ParityIdx == 2) sprintf((char *)str_temp, " %s", (uint8_t *)ParityArray[CdcSettingsState.settings.ParityIdx]); else sprintf((char *)str_temp, " %s", (uint8_t *)ParityArray[CdcSettingsState.settings.ParityIdx]); BSP_LCD_DisplayStringAtLine(11, str_temp); LineCoding.b.bParityType = CdcSettingsState.settings.ParityIdx; } if(CdcSettingsState.settings.StopBitsIdx!= Prev_StopBitsIdx) { Prev_StopBitsIdx = CdcSettingsState.settings.StopBitsIdx; sprintf((char *)str_temp, " %s", StopBitsArray[CdcSettingsState.settings.StopBitsIdx]); BSP_LCD_DisplayStringAtLine(12, str_temp); LineCoding.b.bCharFormat = CdcSettingsState.settings.StopBitsIdx; } BSP_LCD_SetBackColor(LCD_COLOR_BLUE); }