Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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



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

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

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

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

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

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

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

icq: 216409213
По умолчанию

Корректно. Без префикса это легаси от старых времен.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Com-порт cp2102 Igor_Muhin Железо 1 30.09.2017 00:17
установил phpstorm, он занял порт 80, и не запускается openserver " Невозможно занять порт 80 поскольку он уже используется victorshkoda PHP 5 07.04.2016 11:04
Qt + com-порт Vanta11a Qt и кроссплатформенное программирование С/С++ 6 28.04.2011 04:13
com порт Joslen_bomon Железо 1 08.11.2009 13:25
COM-порт daunito Assembler 7 15.01.2009 19:50




16:39.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru