Полная версия этой страницы:
stm32f103 USB CDC
Всем добрый день.
Появилась следующая проблема.
Есть тестовый проект, где происходит элементарное общение контролера с программой на компьютере. Программа шлет пару байт, контролер принимает и отвечает (также пару байт). Использую стандартную библиотеку для USB от STM. В дебаге все работает - появляется com порт, до контролера доходят данные, он отвечает и ответ доходит до программы на компьютере.
Но стоит просто залить прошивку (без дебага), как все перестает нормально работать, а именно до программы на компе данные дойти не могут. Com порт определяется, контролер получает корректные данные (проверел по светодиодам), а вот программа на компе ничего не получает.
Мож кто подскажет вчем дело.
Приложение на PC самодельное? Попробуйте поменять тайминги в настройках COM порта при инициализации. Могу порекомендовать проверить как идет обмен в какой-нибудь программке типа Adwanced Serial Port Monitor. Если в ней данные получаемые от микроконтроллера отображаются, то тогда однозначно проблема в таймингах.
P.S. Совсем недавно делал проект с подобной задачей(передача данных мк и прием обратно через VCP)... у меня проблема была именно в настройка таймингов, при этом я программе PC использован синхронный режим приема данных, и при приеме некоторые данные не принимались.
Проверял и на разных сторонних терминалах. Ничего, данные от контролера не приходят. Заметел такую вещь. Если после заливки кода напрямую, выкл/вкл питание и зайти в дебаг режим тоже работать не будет , а если рестартануть контролер из дебага все работает. Также заметил, что когда данные не отправляются, также в регистре соответствующего endpoint'а не выставляется бит отправки.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.