- У STM32H743ZI не работает корректно CDC Virtual COM port через USB FullSpeed
- Не работает с виртуальным com портом
- Что такое виртуальный COM-порт?
- Для чего используется?
- Как создать виртуальные порты?
- Взаимодействие расширенных и клиентских COM-портов
- В чем проблема с виртуальным COM-портом STM32? Я не могу это открыть
- 2 ответа
- Не работает с виртуальным com портом
У STM32H743ZI не работает корректно CDC Virtual COM port через USB FullSpeed
Борюсь с виртуальным 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 исправляю ошибку
===>Device Descriptor 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
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Источник
Не работает с виртуальным com портом
Последовательный или COM-порт — это интерфейс стандарта RS-232, который служит для подключения различного оборудования к компьютеру. Из-за ограничения в размере информации (1 бит), передаваемой за один раз, данный порт получил второе название: последовательный. Интересным является тот факт, что в различных интерфейсах, таких как Ethernet или USB информация передаются также — последовательно, однако, такое название за ними не закрепилось.
Что делать если в компьютере нет COM-порта?
Изначально COM-порты использовались для подключения терминалов, модемов и мыши. В современное время основное назначение сводится к подключению всевозможных источников питания, микроконтроллеров, вычислительных систем, кассовых аппаратов и других устройств. Также COM-порт очень активно использовался для синхронизации компьютеров: к примеру, ноутбука с персональным компьютером. Сейчас такой подход сменился использованием USB-порта.
Что такое виртуальный COM-порт?
Виртуальный COM-порт воображает себе наша операционная система, при этом он отсутствует физически. Для «воображения» существуют специальные программы, одну из которых мы рассмотрим позже.
Для чего используется?
Поняв, что такое реальный COM-порт и для чего он используется, без труда можно представить себе необходимость в виртуальном COM-порте. Представьте: вам нужно подключить вычислительное устройство к компьютеру через COM-порт. Но у вас его нет! Или же подключить несколько устройств, а порт всего один. Как быть в такой ситуации? Спасает именно создание виртуального порта.
Таким образом, виртуальный порт позволяет имитировать его присутствие в компьютере при отсутствии оного. Примеровприменения довольно много. Однако наиболее часто виртуальный COM-порт применяется:
- При необходимости подключить несколько устройств одновременно.
- При необходимости отладить (протестировать, найти ошибки) программу для вычислительного устройства при отсутствии порта.
Как создать виртуальные порты?
Для их создания предусмотрены специализированные программы. Стоит выбирать те, которые предлагают нам установить нужные для виртуальных портов драйвера, поскольку их поиск — не очень приятное занятие.
Скачайте и установите программу Advanced Virtual COM Port. Установка занимает считаные минуты, при этом на одном из этапов нам предложат драйвер:
Программа для настройки виртуального com-порта в windows
Соглашаемся и нажимаем «Установить». Следует подождать несколько минут — не пугайтесь, если потребуется 5–10 минут. Это нормально.
После установки, заходим в программу и видим главное окно:
Кернел про -для настройки виртуального com-порта в windows
Оно содержит три основных вкладки: Общие (расширенные), клиентские и локальные порты.
Вкладка общие (или расширенные) порты позволяет делиться COM-портами через локальную сеть (LAN) или интернет. Таким образом, данные с виртуальных портов могут быть легко и быстро переданы другим пользователям.
Вкладка клиентские порты позволяют создавать порты на компьютере, которые подключаются к расширенным портам через виртуальный кабель нуль-модема. Стоит сказать, что виртуальный кабель программа предусматривает автоматически.
Вкладка локальные порты даёт возможность просматривать, создавать и удалять все пары виртуальных COM-портов.
Перейдём во вкладку локальные порты и нажмём кнопку Add. Перед нами откроется окно, предлагающее создать пару COM-портов, которые предполагаются быть соединёнными виртуальным нуль-модемным кабелем:
Создание виртуального com-порта в windows7
Жмём ОК. Переходим в Панель управления -> Система -> Диспетчер устройств.
Видим, что наши COM-порты были успешно созданы:
Виртуальные com-порты windows
Взаимодействие расширенных и клиентских COM-портов
Скорее всего, непонятным остаётся вопрос взаимодействия этих двух вкладок. На самом деле всё просто: расширенные порты позволяют делиться своими com-портами, то есть всей информацией, что доступны с устройств, подключённых к этим портам. Они подключаются к клиентским: тем, которые получают всю необходимую информацию.
Для создания расширенного порта достаточно в первой вкладке нажать кнопку Add и выбрать порт, которым мы делимся:
Расшаренный com-порт windows
Для создания клиентского порта, переходим во вторую вкладку, нажимаем кнопку Add и выбираем сначала порт, который хотим сделать клиентским, а затем адрес компьютера, к порту которого мы хотим подключиться:
Клиентский com-порт windows
Итоги
За бортом осталось ещё много чего интересного на тему COM-портов. Хотя эта технология и отходит на второй план с развитием других интерфейсов для подключения устройств, тем не менее пока что она всё ещё активно используются и знать тонкости её работы очень полезно.
Admin
IT-cпециалист с высшим техническим образованием и 8-летним опытом системного администрирования. Подробней об авторе и контакты. Даю бесплатные консультации по информационным технологиям, работе компьютеров и других устройств, программ, сервисов и сайтов в интернете. Если вы не нашли нужную информацию, то задайте свой вопрос!
Источник
В чем проблема с виртуальным COM-портом STM32? Я не могу это открыть
У меня есть плата Nucleo STM32H743ZI. Я использую CubeMX HAL (я пробовал несколько версий) и TrueStudio. «Виртуальный COM-порт» появляется в Windows 10 (я пробовал драйвер Windows по умолчанию и драйвер ST), но не могу открыть порт. Моя C # программа пишет мне «Параметр неверен», когда я пытаюсь открыть его:
То же сообщение пишет мне программа Realterm, PuTTY ничего не делает и программа «Tera Term» работает правильно — я могу отправлять и получать данные в мою программу MCU.
Может кто-нибудь знает что это?
В моей программе на C # и в терминальных программах я использую одни и те же параметры
Информация о USB-устройстве просмотра:
2 ответа
У меня была такая же проблема, я мог прочитать устройство и увидеть, какой com-порт, но я не мог открыть его. (для CDC)
Там упоминается, что вам нужно добавить несколько линий, если вы хотите связываться с RS232 через VCP.
Я добавил следующее в файл usbd_cdc_if.c:
И настроил функцию CDC_Control_FS:
Я надеюсь, что это все еще полезно для вас.
Прошивка FW1.4.0 для STM32H7 работает некорректно. Я должен использовать FW1.3.2 и CubeMX 5.2.1.
Но если я инициализирую шину FMC, виртуальный COM-порт снова работает некорректно, если я комментирую инициализацию, он снова работает правильно
Интересно, что функции C: «fopen (« COM6 »,« r + »), fwrite, fgetc, fclose» — работают в Windows 10 с FW1.4.0 без настройки порта. Ошибка FW1.4.0 в записи параметров порта (в бодах, битах или других) и драйвер Windows виртуального COM-порта возникает исключение, если не может записать параметры в USB-устройство
Источник
Не работает с виртуальным com портом
группа: участники+
сообщений: 42 349
проживает:
Россия, Краснодар
Кто знает, куда копать?
aik | Выключить виртуальную машину, добавить порт в её настройках. Если она включена или на паузе стоит, то настроек показывается сильно меньше, чем у выключенной.
|