![]() 75 / 75 / 8
Регистрация: 24.09.2015
Сообщений: 342
|
|
У STM32H743ZI не работает корректно CDC Virtual COM port через USB FullSpeed26.06.2019, 22:26. Показов 9614. Ответов 3
Борюсь с виртуальным COM портом через USB FS, есть две платы моя собственная и Nucleo. На форуме ST создать тему мне не позволяют, а на сообщение в старой теме ни кто не ответил.
Использую CubeMX 5.2.1 и Firmware FW 1.4.0. Windows 10 определяет COM port, но вот общаться через него нормальным способом не удается. В терминальных программах PuTTY, Real term выдается сообщение, что не верные параметры порта, такое же исключение выбрасывает C# и Qt при попытке открыть порт ("The parameter is incorrect"). Параметры пробовал разные и самые простые из настроек драйвера по умолчанию 8 бит, 9600, без четности, 1 стоп, без flowcontrol (в Linux все работает при любых параметрах, что в Qt, что в терминальных программах). Пробовал использовать драйвер Windows по умолчанию и устанавливать с сайта ST для Windows 7 - поведение одинаковое. В Windows 10 удается однако тоже общаться через COM порт с помощью программы TeraTerm или пользуясь Си функциями: fopen("COM6", "r+"), fwrite, fread, fclose - т.е. без всяких параметров работы порта. Но хотелось бы, чтобы порт мог работать нормально со всеми программами. Такое впечатление, что драйверу COM порта не удается записать параметры в USB устройство и он поэтому не хочет с ним работать, Linux видимо такие проверки записываемых параметров не делает. Пробовал использовать более старые версии CubeMX 4.27.0 и FW 1.3.2 там дела еще хуже - компьютер не видит USB устройство. Точнее, если загрузить и запустить быстро прошивку после более новой, новый COM порт с другим номером появляется и даже работает через PuTTY, но стоит включить/выключить питание COM порт не появляется, так же если просто начисто загрузить прошивку, т.е. FW 1.3.2 не устанавливает соединение (VBUS sense включено, но не работает) Добавлено через 21 минуту Размер кучи увеличиваю до 0x400 В файле usbd_desc.c исправляю ошибку Программа UsbView: ===>Device Descriptor<=== bLength: 0x12 bDescriptorType: 0x01 bcdUSB: 0x0200 bDeviceClass: 0x02 -> This is a Communication Device bDeviceSubClass: 0x02 *!*ERROR: bDeviceSubClass of 2 is invalid bDeviceProtocol: 0x00 bMaxPacketSize0: 0x40 = (64) Bytes idVendor: 0x0483 = STMicroelectronics idProduct: 0x5740 bcdDevice: 0x0200 iManufacturer: 0x01 English (United States) "STMicroelectronics" iProduct: 0x02 English (United States) "STM32 Virtual ComPort" iSerialNumber: 0x03 English (United States) "383A34463137" bNumConfigurations: 0x01 на bDeviceSubClass 0x00
0
|
26.06.2019, 22:26 | |
Ответы с готовыми решениями:
3
F3 Discovery USB CDC(Virtual Com Port) - дело в железе? Организация связи по ethernet, по аналогии с USB CDC Virtual com port ПК не определяет stm32f3discovery ни как Custom HID, ни как CDC Virtual com port |
![]() 75 / 75 / 8
Регистрация: 24.09.2015
Сообщений: 342
|
||||||||||||||||
27.06.2019, 10:49 [ТС] | ||||||||||||||||
Для варианта CubeMX 4.27, FW 1.3.2 есть способ оживить USB добавив в функцию инициализации вызов функции
Добавлено через 1 час 24 минуты Пустой проект CubeMX 5.2.1 + FW1.3.2 с виртуальным COM портом работает корректно, но при добавление шины FMC (Mux PSRAM) виртуальный COM порт перестает записывать параметры. Если закоментировать инициализацию FMC, то виртуальный COM порт опять работает полноценно.
В варианте CubeMX 5.2.1 + FW1.4.0 запись параметров виртуального COM порта не работает не зависимо, есть FMC или нет.
0
|
0 / 0 / 0
Регистрация: 01.05.2021
Сообщений: 1
|
|
01.05.2021, 21:18 | |
Здравствуйте.
Я недавно перешел с F4 на H743 Nucleo. Своими силами пытался написать код под Н7 нуклео, чтобы по виртуальному компорту на комп отсылать данные и никак не могу - в диспетчере устройств только один компорт видит, ходя должно быть два. Вы могли бы сбросить свой код, который реализует виртуальный ком порт? Заранее спасибо.
0
|
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
|
|
02.05.2021, 21:57 | |
У меня с этой Nucleo H743 другая история - виртуальный COM-порт (который совмещен с ST-Link) виден, но данные не передаются. А осциллограф (на ноге RX контроллера этого USART) показывает, что данные с USB-COM на самом деле идут, но это НЕ ТЕ данные. Более того, они разные при отправке одного и того же символа много раз подряд.
Причем в самый первый раз (в первое включение) у меня это все работало. Потом перестало.
0
|
02.05.2021, 21:57 | ||||||
Помогаю со студенческими работами здесь
4
Описание протокола USB CDC Abstract Control Model (Virtual ComPort) STM32F4 USB Virtual Com Port Виснет USB Virtual COM Port STM32
Есть ли у кого библиотека USB Virtual Port? Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
BASH scripting - the best cases [PurpleSchool]
jigi33 08.04.2025
Занятия BASH в PurpleSchool - отличные примеры для внедрения в практику
(see screenshots and file names)
|
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. )
В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
|
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
|
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
|
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
|
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
|
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
|
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
|
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
|
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
|