Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Микроконтроллеры, робототехника, схемотехника, 3D принтеры
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2017, 16:07   #1
Igor_Muhin
Новичок
Джуниор
 
Регистрация: 29.09.2017
Сообщений: 4
По умолчанию Com-порт cp2102

Устройство USB-UART cp2102 рабочее. Позволяет программировать прибор, и через него идет считывание данных с прибора через программы-мониторы портов. Но в программе на Delphi не проходит команда SetCommState(Com_Port_Handle, DCB), а GetCommState(Com_Port_Handle, DCB) возвращает все нули. Устройства USB-UART на других микросхемах (например, CH340G) с этой программой работают. В чем может быть проблема?
Igor_Muhin вне форума Ответить с цитированием
Старый 29.09.2017, 22:12   #2
pbt
Пользователь
 
Регистрация: 15.08.2012
Сообщений: 23
По умолчанию

Смотрите что возвращает GetLastError.
pbt вне форума Ответить с цитированием
Старый 30.09.2017, 00:42   #3
Igor_Muhin
Новичок
Джуниор
 
Регистрация: 29.09.2017
Сообщений: 4
По умолчанию

Возвращает ноль.
Похоже проблема была в имени файла. В общем, когда задаю в CreateFile имя порта как Pchar('\\.\'+ Port_Name) вместо Pchar(Port_Name), где Port_Name = 'COM10' (получается программно), то порт на CP2102 (действительно COM10 по диспетчеру устройств) устанавливается нормально и даже уже удается иногда прочитать правильные числа с прибора. Зачем нужна добавка '\\.\' ?
Igor_Muhin вне форума Ответить с цитированием
Старый 30.09.2017, 08:47   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Так это известная проблема. В системе жёстко прописаны только первые порты, остальные надо вызывать с префиксом. Префикс "\\.\" - это явная отсылка к устройствам.

Вот если бы Вы привели фрагмент кода в своём первом сообщении, ясно было бы сразу. А то
Цитата:
Сообщение от Igor_Muhin Посмотреть сообщение
Устройства USB-UART на других микросхемах (например, CH340G) с этой программой работают.
- пойди пойми, что номер порта поменялся..
Black Fregat вне форума Ответить с цитированием
Старый 30.09.2017, 10:52   #5
Igor_Muhin
Новичок
Джуниор
 
Регистрация: 29.09.2017
Сообщений: 4
По умолчанию

Понятно, спасибо. А корректно этот префикс к именам первых портов (COM1-COM9) тоже добавлять для простоты? Я пока ко всем добавляю, вроде бы работает.
Igor_Muhin вне форума Ответить с цитированием
Старый 30.09.2017, 10:56   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Корректно. Без префикса это легаси от старых времен.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Com-порт cp2102 Igor_Muhin Компьютерное железо 1 29.09.2017 23:17
установил phpstorm, он занял порт 80, и не запускается openserver " Невозможно занять порт 80 поскольку он уже используется victorshkoda PHP 5 07.04.2016 10:04
Qt + com-порт Vanta11a Qt и кроссплатформенное программирование С/С++ 6 28.04.2011 04:13
com порт Joslen_bomon Компьютерное железо 1 08.11.2009 12:25
COM-порт daunito Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 15.01.2009 18:50