Я собрал код из STM32CubeF4 для примера USB CDC. Я добавил недостающий код приема для CDC_Receive_FS () в usbd_cdc_if.c. Я загрузил это в свой STM32F4 Discovery, и он работает. Символ, набранный на Tera Term, возвращается и отображается на Tera Term.
Я надеюсь, что кто-то здесь может дать мне некоторые знания о том, как работает эта прошивка USB CDC, в частности, это вызвано прерыванием, которое генерируется при изменении уровня напряжения на выводах USB -D и + D, или есть бесконечный цикл while, который был запущен где-то, и он просто опрашивает, ожидая появления каких-то данных? Что вызвало у меня вопрос, так это то, что я вижу, что можно мигать светодиодами на этой плате, переключая состояние контактов GPIO в бесконечном цикле while в main.c. Однако в main.c для USB в этом цикле while вообще нет ничего. Итак, как эта прошивка USB CDC получает и отправляет символ из / в Tera Term.