Witam,
Przypomniało mi się, że interfejs cdc był opisany odrobinę w gazecie EP 3/2016 jako dodatkowa wkładka.
Tu jest artykuł z tej wkładki.
Wynikało by z tego, że trzeba w pliku usbd_cdc_if.c dopisać kod w funkcji CDC_Control_HS (uint8_t cmd, uint8_t* pbuf, uint16_t length). Funkcja ta jest wywoływana w przypadku zmiany ustawień portu VCOM. Jest tam tylko switch z obsługą pustych komend.
Ten link powinien być również pomocny. Jest przedstawiona obsługa bitrate przez w/w funkcję CDC_Control_HS (uint8_t cmd, uint8_t* pbuf, uint16_t length). Na podstawie takich danych, jest już chyba możliwość wykrywania otwarcia/zamknięcia portu. Tak mi się wydaje przynajmniej. Trzeba sprawdzić...
Po Testach
W funkcji CDC_Control_HS (uint8_t cmd, uint8_t* pbuf, uint16_t length)w poszczególnych segmentach obsługi komend podpiąłem wyświetlanie na LCD. Działa...
Ustawiany baudrate w programie terminalowym ładnie przekazywany jest przez w/w funkcję na LCD.
Zmiana stanu linii DTR/RTS, wysyłanie sygnału BREAK powoduje odpowiednią reakcję na LCD.
Można więc chyba zrobić detekcję stanu portu w komputerze...
Przypomniało mi się, że interfejs cdc był opisany odrobinę w gazecie EP 3/2016 jako dodatkowa wkładka.
Tu jest artykuł z tej wkładki.
Wynikało by z tego, że trzeba w pliku usbd_cdc_if.c dopisać kod w funkcji CDC_Control_HS (uint8_t cmd, uint8_t* pbuf, uint16_t length). Funkcja ta jest wywoływana w przypadku zmiany ustawień portu VCOM. Jest tam tylko switch z obsługą pustych komend.
Ten link powinien być również pomocny. Jest przedstawiona obsługa bitrate przez w/w funkcję CDC_Control_HS (uint8_t cmd, uint8_t* pbuf, uint16_t length). Na podstawie takich danych, jest już chyba możliwość wykrywania otwarcia/zamknięcia portu. Tak mi się wydaje przynajmniej. Trzeba sprawdzić...
Po Testach
W funkcji CDC_Control_HS (uint8_t cmd, uint8_t* pbuf, uint16_t length)w poszczególnych segmentach obsługi komend podpiąłem wyświetlanie na LCD. Działa...
Ustawiany baudrate w programie terminalowym ładnie przekazywany jest przez w/w funkcję na LCD.
Zmiana stanu linii DTR/RTS, wysyłanie sygnału BREAK powoduje odpowiednią reakcję na LCD.
Można więc chyba zrobić detekcję stanu portu w komputerze...
73 Paweł

