Stm32 virtual com port driver windows 7 не устанавливается
Микроконтроллеры 1986ВЕ1Т, 1986ВЕ3Т, 1986ВЕ9х и 1901ВЦ1Т имеют контроллер USB-интерфейса, реализующий функции контроллера ведомого устройства (Device) и ведущего устройства (Host). В составе библиотеки SPL приведён пример для ведомого устройства (Device) под названием "VCOM_Echo", который позволяет использовать МК в качестве CDC USB устройства (Класс Коммуникационного Устройства), настроенного как виртуальный COM-порт. Чтобы ПК определял МК именно как устройство, подключенное по COM-порту, необходимо установить специальный драйвер. Ссылка на скачивание драйвера доступна в конце статьи.
В данной статье рассмотрена пошаговая установка драйвера Virtual COM порт в ОС Windows 7.
Установка драйвера
Для установки драйвера виртуального COM-порта необходимо иметь права администратора!Загружаем в МК проект "VCOM_Echo" и подключаем отладочную плату к ПК с помощью кабеля USB A-B. На ПК открываем "Диспетчер устройств Windows", его можно найти в поиске меню "Пуск". Если драйвер не установлен, то после подключения МК по USB в диспетчере устройств появится "Неизвестное устройство". Открываем "свойства" нового устройства, как показано на рисунке 1.
В открывшемся окне "Свойства. " выбираем пункт "Изменить параметры" (рисунок 2), при этом возможно потребуется ввести пароль администратора.
В новом окне выбираем пункт "Обновить драйвер", как показано на рисунке 3.
Здесь необходимо выбрать "поиск драйверов на компьютере" (рисунок 4).
Теперь необходимо разархивировать папку с драйверами в любую директорию на ПК, например, в корень диска С, после чего в открывшемся окне нужно указать путь к папке с драйвером и нажать кнопку "Далее" (рисунок 5).
В процессе установки Windows может вывести предупреждение, в котором необходимо выбрать пункт "Всё равно установить этот драйвер", как показано на рисунке 6.
После установки драйвера в диспетчере устройств во вкладке "Порты(COM и LPT)" должно появиться новое устройство "Milandr USB RS-232 Emulation Driver" (рисунок 7).
Если установить всё-таки не получается, то
Можно попробовать запустить операционную систему Windows в безопасном режиме или режиме с отключенной обязательной проверкой подписи драйверов.
Для Windows 7 при запуске компьютера необходимо быстро нажимать клавишу F8, после чего появится окно аналогично тому, что представлено на рисунке 8. После этого выбрать либо безопасный режим, либо режим с отключенной обязательной проверкой подписи драйверов и попробовать установить драйвер снова.
Рисунок 8 - Дополнительные варианты загрузки Windows 7
Для Windows 8 и 10 есть несколько способов перейти в аналогичное Windows 7 меню выбора режима загрузки, но самый простой заключается в том, чтобы нажать кнопку "Перезагрузка" вместе с зажатой кнопкой Shift прямо в меню "Пуск" (рисунок 9).
Рисунок 9 - Алгоритм попадания в первоначальный загрузчик Windows
После перезагрузки всплывёт полностью синий экран с различными вариантами загрузки операционной системы, необходимо перейти в меню "Поиск и устранение неисправностей" > "Дополнительный параметры" > "Параметры загрузки". После этого всплывёт окно с выбором режима загрузки операционной системы, как на рисунке 10.
Рисунок 10 - Меню выбора режимов загрузки Windows 8 (10)
Соответственно, также необходимо выбрать либо безопасный режим, либо режим с отключенной обязательной проверкой подписи драйверов и попробовать установить драйвер снова.
Решение проблемы с установкой драйвера виртуального последовательного порта STM32F103
После получения доски форума STM32F303RE мой компьютер не смог установить последовательный порт, виртуализированный Stlink. Я могу только перечислить устройства, которые Stlink загружает и моделирует диск U. Я перепробовал много методов. Поскольку мой компьютер правильно установил виртуальный последовательный порт эмуляции USB на других фильмах серии ST, и суть установки драйвера заключается в использовании INF INF в качестве загрузочной программы для загрузки системного USB-драйвера системы, поэтому я чувствую себя более смущенным, почему Другие доски приемлемы, но это не так. Сегодня я подключил к компьютеру виртуальный последовательный порт другой платы и обнаружил, что виртуальный последовательный порт больше не будет работать. Появился восклицательный знак. Наверное, что-то не так с моей компьютерной системой.
Причина, по которой общая установка виртуального последовательного порта USB может завершиться неудачей, заключается в том, что оконная система не является официальной подлинной системой, а упорядочена или отключена. Таким образом, некоторые файлы будут отсутствовать во время установки. Следующие два типа более распространены:
1) Отсутствует usbser.sys, Два файла mdmcpq.inf, Найдите эти 2 файла и скопируйте mdmcpq.inf в c: \ windows \ inf, Скопируйте usbser.sys в windows \ system32 \ drivers.
2) Есть компьютеры без следующих папок, как правило, в пути установки В папке C: \ Windows \ System32 \ DriverStore \ FileRepository конкретная папка может отличаться в зависимости от компьютера. В любом случае, я просто копирую следующие файлы на проблемный компьютер.
Но на этот раз, когда мой компьютер устанавливает драйвер, приглашение выглядит следующим образом:Система не может найти указанный файлЕсли эта проблема возникает, два вышеупомянутых метода не могут быть решены, потому что соответствующие файлы существуют (исходная картинка сети, у меня не было скриншота в то время)
Наконец, я нашел решение в Интернете: измените mdmcpq.inf в папке C: \ Windows \ inf.
закомментируйте [FakeModemCopyFileSection]; usbser.sys
После обновления драйвера виртуальный последовательный порт можно установить нормально
После тщательного размышления на моем компьютере раньше было недостаточно места на системном диске, поэтому я использовал обтекаемое программное обеспечение системного диска для удаления некоторых, казалось бы, бесполезных файлов, что должно привести к удалению некоторых файлов, связанных с виртуальным последовательным портом. ,
При нормальных обстоятельствах эти проблемы не будут возникать в подлинной системе, но иногда многие компьютеры клиентов не являются подлинными системами, весьма вероятно, что эти файлы будут отсутствовать, и драйвер не может быть установлен.
Нет ничего плохого в удалении системных файлов, может быть, вы уйдете с дороги в этот день! !
Перед пользователями сети JackieLaura Есть также много способов решить виртуальный последовательный порт, вы можете проверить загрузку на 12-м этаже следующего поста, спасибо JackieLaura !!
Решение виртуального последовательного порта
Интеллектуальная рекомендация
Использование Jmeter Beanshell
Использование Beanshell Что такое бобовая скорлупа Beanshell - это язык сценариев, который полностью соответствует синтаксису Java, и имеет свои собственные встроенные объекты и синтаксис Beans.
Android получить информацию о приложении (пакете) и размере кэша при использовании PackageManager
[size = medium] [b] класс PackageManger [/ b] [/ size] Описание: Получить информацию об установленных приложениях. Его можно получить с помощью метода [color = red] getPackageManager () [/ color]. Общ.
UITextView добавить текст заполнителя
UITextView - это простой и легкий в использовании метод для добавления текста заполнителя. В основном используйте drawRect: метод для рисования текста заполнителя. Создайте файл CustomPlaceholderTextV.
Разница между равным и "= mh-excerpt">
1. Разница между равным и "==" (1) Роль равенства заключается в сравнении одинакового содержимого двух независимых объектов., Другими словами, это для сравнения значений двух объектов. I1, i.
Отладочную плату ипользуем ту же: STM32F4-DISCOVERY.
Проект создаём из проекта I2CLCD80. Назовем его USB_OTG_CDC. Запустим проект в Cube, включим USB_OTG_FS в режим Device_Only
В USB_DEVICE в разделе Class For FS IP выберем пункт Communication Device Class (Virtual Port Com).
Лапки портов PD4-PD7, PB8, PB9 отключим, это пережиток прошлых занятий
В Clock Configuration выберем следующие делители (нажмите на картинку для увеличения изображения)
В Configuration ничего не трогаем, т.к. прерывания там выставились сами.
Сгенерируем и запустим проект, подключим lcd.c и настроим программатор на автоперезагрузку.
У нас скорей всего устройство установится с ошибкой (код 10)
Есть несколько типов решений, мне понравился именно этот, т.к. более простой: в файле usbd_cdc.h заменим размер пакета, вместо 512 напишем 256 в данной строке:
Соберём, прошьём и увидим, что ошибка исчезла.
Начнём писать код.
Сначала попытаемся передать данные на ПК.
Для этого мы сначала откроем файл usbd_cdc_if.c и исправим там в 2х строчках 4 на 64
В файле main.c закомментируем весь пользовательский код кроме инициализации и очистки дисплея
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
Также в main.c подключим файл usbd_cdc_if.h для видимости функций приема и передачи
/* USER CODE BEGIN Includes */
Немного изменим в главной функции строковую переменную, убавив в ней размер и добавив префикс tx
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
В файле usbd_cdc_if.c добавим прототип функции передачи, скопировав объявление из реализации данной функции в том же файле
/* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len);
/* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */
В main() внесём данные в строку
/* USER CODE END 2 */
CDC_Transmit_FS((unsigned char*)str_tx, strlen(str_tx));
/* USER CODE END WHILE */
Соберём код, прошьём контроллер и посмотрим результат в терминальной программе.
Вроде передать нам что-то удалось. Теперь попробуем что-нибудь принять. Здесь чуть посложнее, т.к. для этого используется уже обработчик прерывания, коим является в файле usbd_cdc_if.c функция CDC_Receive_FS.
Добавим ещё одну строковую глобальную переменную в main()
/* USER CODE BEGIN PV */
/* USER CODE END PV */
Объявим её также и в файле usbd_cdc_if.c
/* USER CODE BEGIN PRIVATE_VARIABLES */
extern char str_rx[21];
/* USER CODE END PRIVATE_VARIABLES */
В функцию CDC_Receive_FS в этом же файле добавим некоторый код и кое-что закомментируем
static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)
/* USER CODE BEGIN 6 */
Добавим переменную в main()
/* USER CODE BEGIN 1 */
Занесенные в наш буфер данные попробуем вывести на дисплей, для этого в бесконечном цикле в функции main() добавим определённый код
CDC_Transmit_FS((unsigned char*)str_tx, strlen(str_tx));
Соберём проект. Прошьём код и посмотрим результат, вводя в терминальной программе и отправляя в порт USB какие-нибудь строки.
22 комментария на “ STM Урок 33. HAL. USB. Virtual Com Port ”
Просто измените размер кучи (Minimum Heap Size) в настройка CubeMX. Вместо значения 0x200 задайте 0x400.
И комп увидит устройство без ошибок.
При инициализации структур компилятору элементарно не хватает места, заданного по умолчанию, для выделения памяти.
Пардон, очепятка вышла. Не компилятору, а функции malloc.
Спасибо, так действительно проще.
Спасибо.Я сделал так.В хидер usbd_cdc_if.h добавил две строчки
extern uint8_t UserRxBufferFS[1000];
uint8_t receiveBufLen;
В метод CDC_Receive_FS добавил перед return receiveBufLen = *Len;
И в main ловил данные просто одним условием
if(receiveBufLen > 0)// если получены данные от ПК
HAL_Delay(250);
CDC_Transmit_FS((uint8_t*) UserRxBufferFS,receiveBufLen);
// эхо для наглядности
receiveBufLen = 0;// сброс получения
>
Всё просто,а UserRxBufferFS чистить не нужно от мусора,он сам чистится.
может в usbd_cdc_if.c ?
Ох, видимо сперва надо читать коментарии, прочитал тот что выше.
Скорей всего придется делать конкатенацию передаваемых строк с помощью strcat. Была аналогичная проблема при использовании CDC. Автор применял этот метод в одном из уроков.
Здравствуйте
А если я хочу передавать данные с микроконтроллера на компьютер?
Константин:
А мы их туда и передали.
Установил различные драйвера VCP от STM, но при этом плата не определяется при подключении её к компьютеру. только виден STLink Virtual COM Port. Кто уже сталкивался с такой проблемой.
Оказалась, что проблема с дровами. Надо их полностью сносить и устанавливать заново.
You can use(for example):
where ADC_Data is your ADC value.
могу скачать драйвера для виртуального ком порта. У меня STM32F415RG, может есть у кого?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Попробуйте перепаять R10 на 1-2кОм. Помогает.
И ещё - Попробуйте на неизвестное устройство поставить драйвер из папки с драйверами.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Но там R10 уже стоит на 1.5 кОМ. Я её прошивал в прошлом году. Поморгал светодиодом с горем пополам ,все время ругалось при компиляции . Была система ХП. СЕйчас стоит 7. Жду из китая новую платку , может другая прошъётся .
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
У меня их десяток разных. И с 10к и с 1.5к. Ни одну не смог запустить в режиме с загрузчиком. Да в общем то и не старался. Не получилось с ходу - и ладно. Она через ST-Link шьётся замечательно и при этом после старта на загрузчике не тормозит.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Аналогично, только даже не пробовал шить без ST-Link.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ну, вообще-то варианты загрузки через ST-Link и через USB являются взаимоисключающими. Изначально - шьется через ST-Link, если перепрошить загрузчик, будет шиться через USB, но перестанет через ST-Link.
Судя по тому, что шьется через ST-Link, там просто нет ардуиновского загрузчика.
PS. Через UART шьется в любом случае.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ну, вообще-то варианты загрузки через ST-Link и через USB являются взаимоисключающими. Изначально - шьется через ST-Link, если перепрошить загрузчик, будет шиться через USB, но перестанет через ST-Link.
Судя по тому, что шьется через ST-Link, там просто нет ардуиновского загрузчика.
PS. Через UART шьется в любом случае.
разве v bluebpill'e нет ситемного загрузчика который есть "с завода" и являеться частью кремния?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вот "с завода" именно через UART. Но довольно геморройно: переставить перемычку, нажать кнопку, запустить программу прошивки, и, главное, нигде не перепутать последовательность.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вот вот. Когда получил первые платы ST-Linkа у меня ещё не было. Собственно на одну через UART влили прошивку ST-Linka c танцами и бубнами, зато потом жизнь сразу стала легче.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
У меня их десяток разных. И с 10к и с 1.5к. Ни одну не смог запустить в режиме с загрузчиком.
Аналогично, только даже не пробовал шить без ST-Link.
У меня напротив - среди двух десятков таких плат от разных продавцов ни с одной не было проблем с подключением по ком-порту. СТ-линк есть, но я им пользуюсь при работе с ИАРом или Кубом, а в ардуино ИДЕ прошиваю исключительно через ком-порт.
Не знаю, какие у вас проблемы - по гайду от HWMan все отлично работает, даже резистор на PA12 менять не обязательно.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вот "с завода" именно через UART. Но довольно геморройно: переставить перемычку, нажать кнопку, запустить программу прошивки, и, главное, нигде не перепутать последовательность.
никаких кнопок нажимать не надо.
Переставил перемычку, прошил через Flash Loader Demonstrator, вернул перемычку обратно. ВСЕ
И если что перепутаешь - вернутся к заводской прошивке не проблема.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А как "прошить через Flash Loader Demonstrator", не нажимая никаких кнопок?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А как "прошить через Flash Loader Demonstrator", не нажимая никаких кнопок?
на плате блюпилл никаких кнопок не нажимается.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Подтверждаю. На блюпиле жёлтенькие джамперы. Вот только правильно воткнуть для прошивки в условиях первого попадания в руки и большой боязни что то не испортить. Да и заливка на разных скоростях, и размер надо правильно указать. И USB-TTL правильно воткнуть. В общем первый раз у меня часа два ушло пока на экране Ок не появилось.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А зачем тогда я, как дурак, каждый раз на сброс нажимаю?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А зачем тогда я, как дурак, каждый раз на сброс нажимаю?
не знаю :) На заводской прошивке этого делать не требуется.
Вот если что не так прошил и прошивку запорол - то да, тогда нужно чистить флеш например при помощи СТ-линк утилиты, и вот оно срабатывает только если запускаешь с нажатым ресетом
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Не знаю, какие у вас проблемы
Б707, дорогой! Ни каких проблем! ;)) Я же написал - в голову не пришло проверять, как оно с УАРТом. С удовольствием почитаю ветку, ради информации.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А зачем тогда я, как дурак, каждый раз на сброс нажимаю?
не знаю :) На заводской прошивке этого делать не требуется.
Вот если что не так прошил и прошивку запорол - то да, тогда нужно чистить флеш например при помощи СТ-линк утилиты, и вот оно срабатывает только если запускаешь с нажатым ресетом
Когда я экспериментировал с Кубом, в некоторых случаях контроллер после прошивки не был виден через ST-Link (что я отследил), и в некоторых не прошивался без нажатия на сброс (что я воспринял как обычную практику). Ну, собственно, после этого нажимал на сброс всегда - чтобы уж наверняка.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Когда я экспериментировал с Кубом, в некоторых случаях контроллер после прошивки не был виден через ST-Link (что я отследил), и в некоторых не прошивался без нажатия на сброс (что я воспринял как обычную практику). Ну, собственно, после этого нажимал на сброс всегда - чтобы уж наверняка.
в кубе пробовали настраивать дебаг порт ?
Вот если что не так прошил и прошивку запорол - то да, тогда нужно чистить флеш например при помощи СТ-линк утилиты, и вот оно срабатывает только если запускаешь с нажатым ресетом
на случай, если нет ST-Link'a , есть такая утилита STM32CubeProgrammer , ей можно USART/USB подсоедениться к микроконтоллру в режиме бутлоадера и удалить /перепрошить и много еще чего. a ST-Link ом можно и в обычном режиме
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Здравствуйте. Всё голова уже не работает. Порт так и не появился.Буду ждать из китая новую stm-ку. Полтора года не могу доделать проект. ST-Linka у меня нет.Спасибо всем .
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
У меня вин7. Сейчас подключил STM и посмотрел драйвер - короче драйвер LeafLabs, LLC дата 21.10.2018.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Здравствуйте. Всё голова уже не работает. Порт так и не появился.Буду ждать из китая новую stm-ку. Полтора года не могу доделать проект. ST-Linka у меня нет.Спасибо всем .
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Здравствуйте. Я все так и делал. Переходник у меня ch 340 . Через Flash Loader Demonstrator все проходит. И светофор зелёный и после пошивки зелёная полоса. Далее от администратора запускаю установку драйвера. Появляется чёрный экранчик, жду, появляется (нажмите любую клавишу). Далее иду в ардуино , ну и как в ссылке в самом начале страницы . А порта там нет.Пытался в диспетчере , ставить вручную , пишет что драйвера не нуждаются в обновлении. А само устройство остановлено из за неполадок ,код (43).Сейчас попробовал подключить ардуино нано, порт появляется. А с stm порта нет. Как то так.
Читайте также: