Страница 1 из 1
HC-05, USB Dongle и последовательный порт
Добавлено: Вт июл 28, 2015 16:39:55
Phillip
Добрый день!
Появилась задача управлять одной девайсиной с ПК. Решил, что управлять буду через COM порт, и сделаю два варианта - проводной и беспроводной, заодно научусь обращаться с модулем HC-05, про который довольно много слышал.
Сделал плату, написал на VS2010 программку для связи - всё хорошо. И по проводу работает, и через пару HC-05 - USB Dongle B-122.
Дальше решил побаловаться с командной строкой. И тут оказалось, что команда
не "видит" COM-порта, который создаётся HC-05. Сначала я не поверил своим глазам, потом залез в Диспетчер устройств - нет, всё на месте.
(COM3 - это проводной COM, пара COM8-COM11 - от HC-05)
Но программа на VS2010 находила эти порты! Начал копать дальше, перешёл к PowerShell'у.
Код: Выделить всё
[System.IO.Ports.SerialPort]::getportnames()
Находит порты от HC-05.
И вот я бьюсь второй день с этой бедой.
Известно, что:
1. Моя программа на VS2010 (использующая стандартную библиотеку System.IO.Ports) видит COM-порты, созданные парой HC-05 - USB Dongle B-122. Команда System.IO.Ports.SerialPort из PowerShell'а (и прочие стандартные оттуда) тоже их видит.
2. Команда mode не видит этих портов, равно как и Терминал 1.9b.
Была у меня версия, что дров не хватает каких-то для USB Dongle B-122, но на сайте производителя дрова только для Win98, 2k, на мою Семёрку они встают очень криво.
Может быть кто-то сталкивался с подобной проблемой? Как быть?
Заранее благодарен.
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Вт июл 28, 2015 17:59:05
YS
Дело скорее всего в том, что к COM-портам с большими номерами
надо обращаться по пути не просто "COMx", а "\\.\COMx" (в Си надо экранировать слеши, так что литерал будет иметь вид "\\\\.\\COMx"). Похоже что указанные проблемные программы этого не учитывают, а те, что нормально работают, созданы с учетом этой особенности.
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Вт июл 28, 2015 18:24:25
Phillip
YS, спасибо за ответ!
К сожалению, ровно то же самое происходит с портами, номера которых не выходят за 10, только что проверил.
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Вт июл 28, 2015 18:45:27
YS
В смысле? Вы же сами сказали, что с ними все хорошо?
Попробуйте ко всем виртуальным портам обращаться через \\.\COMx, как минимум, хуже не будет - такое обращение работает и для нижнего диапазона портов. Разница только в том, что порты с номерами из верхнего диапазона принципиально по-другому не работают.
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Вт июл 28, 2015 18:56:05
Phillip
Всё хорошо с "проводными" портами, какой бы номер ни был.
Всё плохо с "беспроводными", какой бы номер ни был, опять же. В зависимости от того, в какой USB разъём воткнуть USB Dongle, номер порта получается разный - может быть и 4, и 7, и 11, например.
Команда mode не принимает аргумент типа \\.\COMx, говорит "недопустимый параметр". Я не знаю, есть ли другое команды для комадной строки для открытия COM порта.
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Вт июл 28, 2015 19:13:22
YS
Команда mode не принимает аргумент типа \\.\COMx, говорит "недопустимый параметр".
Попробуйте передать его в кавычках.
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Чт июл 30, 2015 09:30:02
Phillip
Получается вот так:
Видно, что если просто написать COM4, то mode сообщает "устройство недоступно". Т. е., оно как бы есть, но до него не добраться.
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Чт июл 30, 2015 21:28:19
YS
Хм, странно. Даже интересно. Я когда доберусь до своего основного ПК, сам попробую mode c разными переходниками и расскажу, что получилось.
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Пт июл 31, 2015 09:27:21
YS
Попробовал (Win7 x64 Home Premium). COM4 - переходник на CP2102. Все работает. Значит, видимо, в вашем случае правда что-то не то с драйверами.
Спойлер
Код: Выделить всё
C:\>mode
Status for device LPT1:
-----------------------
Printer output is not being rerouted.
Status for device COM1:
-----------------------
Baud: 1200
Parity: None
Data Bits: 7
Stop Bits: 1
Timeout: OFF
XON/XOFF: OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit: ON
RTS circuit: ON
Status for device CON:
----------------------
Lines: 300
Columns: 80
Keyboard rate: 31
Keyboard delay: 1
Code page: 866
C:\>mode
Status for device LPT1:
-----------------------
Printer output is not being rerouted.
Status for device COM1:
-----------------------
Baud: 1200
Parity: None
Data Bits: 7
Stop Bits: 1
Timeout: OFF
XON/XOFF: OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit: ON
RTS circuit: ON
Status for device COM4:
-----------------------
Baud: 1200
Parity: None
Data Bits: 7
Stop Bits: 1
Timeout: OFF
XON/XOFF: OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit: OFF
RTS circuit: OFF
Status for device CON:
----------------------
Lines: 300
Columns: 80
Keyboard rate: 31
Keyboard delay: 1
Code page: 866
C:\>mode COM4
Status for device COM4:
-----------------------
Baud: 1200
Parity: None
Data Bits: 7
Stop Bits: 1
Timeout: OFF
XON/XOFF: OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit: OFF
RTS circuit: OFF
C:\>
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Пт июл 31, 2015 13:02:53
Phillip
Вы как делали - просто подключили к USB порту переходник типа USB-COM? Проводной. Это у меня работает нормально.

Вот если в USB порт засунуть USB BT Dongle, организовать связь между ним и HC-05 на плате устройства - вот тогда работает описанным выше образом.
Re: HC-05, USB Dongle и последовательный порт
Добавлено: Пт июл 31, 2015 14:32:22
YS
Да, проводной.
Понял проблему. Увы, тогда ничем помочь не могу.
