Теперь такой вопрос - каким образом задаются параметры COM порта? Вижу в USBD_User_CDC_0.c функцию
Код
// Called upon USB request to Set Line Coding.
// \param[in] line_coding pointer to \ref CDC_LINE_CODING structure.
// \return true set line coding request processed.
// \return false set line coding request not supported or not processed.
bool USBD_CDC0_ACM_SetLineCoding (CDC_LINE_CODING *line_coding) {
if (Driver_UART1.Configure ( line_coding->dwDTERate,
line_coding->bDataBits,
(ARM_UART_PARITY) line_coding->bParityType,
(ARM_UART_STOP_BITS) line_coding->bCharFormat,
ARM_UART_FLOW_CONTROL_NONE)
== ARM_UART_OK) {
LineCoding.dwDTERate = line_coding->dwDTERate;
LineCoding.bDataBits = line_coding->bDataBits;
LineCoding.bParityType = line_coding->bParityType;
LineCoding.bCharFormat = line_coding->bCharFormat;
}
return true;
}
Похоже, нужно послать по USB запрос на установку режимов, они одинаковые и для VirtualCOM, и для COM (символы передаются с одного порта на другой, и наоборот, в данном примере). Но что-то я не нахожу, где и когда создается такой запрос. В настройках COM (VirtualCOM) порта в Windows?