В чем может быть проблема? Ниже приведен кусок кода. Так же есть рабочий большой проект с использованием com порта, его тут выкладывать не буду, но суть в том, что на одном пк все работает исправно, на другом вылезает та же ошибка «Не удается найти указанный файл».
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSerialPort>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QMessageBox>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
serial = new QSerialPort(this);
ui->setupUi(this);
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
ui->comboBox->addItem(info.portName());
fillPortsParameters();
}
void MainWindow::fillPortsParameters()
{
ui->baudRateBox->addItem(QStringLiteral("9600"), QSerialPort::Baud9600);
ui->baudRateBox->addItem(QStringLiteral("19200"),
QSerialPort::Baud19200);
ui->baudRateBox->addItem(QStringLiteral("38400"),
QSerialPort::Baud38400);
ui->baudRateBox->addItem(QStringLiteral("115200"),
QSerialPort::Baud115200);
ui->dataBitsBox->addItem(QStringLiteral("5"), QSerialPort::Data5);
ui->dataBitsBox->addItem(QStringLiteral("6"), QSerialPort::Data6);
ui->dataBitsBox->addItem(QStringLiteral("7"), QSerialPort::Data7);
ui->dataBitsBox->addItem(QStringLiteral("8"), QSerialPort::Data8);
ui->dataBitsBox->setCurrentIndex(3);
ui->parityBox->addItem(tr("None"), QSerialPort::NoParity);
ui->parityBox->addItem(tr("Even"), QSerialPort::EvenParity);
ui->parityBox->addItem(tr("Odd"), QSerialPort::OddParity);
ui->parityBox->addItem(tr("Mark"), QSerialPort::MarkParity);
ui->parityBox->addItem(tr("Space"), QSerialPort::SpaceParity);
ui->stopBitsBox->addItem(QStringLiteral("1"), QSerialPort::OneStop);
#ifdef Q_OS_WIN
ui->stopBitsBox->addItem(tr("1.5"), QSerialPort::OneAndHalfStop);
#endif
ui->stopBitsBox->addItem(QStringLiteral("2"), QSerialPort::TwoStop);
ui->flowControlBox->addItem(tr("None"), QSerialPort::NoFlowControl);
ui->flowControlBox->addItem(tr("RTS/CTS"),
QSerialPort::HardwareControl);
ui->flowControlBox->addItem(tr("XON/XOFF"),
QSerialPort::SoftwareControl);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
int current_port;
current_port = ui->comboBox->currentIndex();
//qDebug() << serial.currentReadChannel();
serial->setBaudRate(QSerialPort::Baud9600);
serial->setDataBits(QSerialPort::Data8);
serial->setParity(QSerialPort::NoParity);
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
serial->setPortName("COM1");
if(serial->isOpen())
qDebug() << "1";
if (serial->open(QIODevice::ReadWrite))
{
QMessageBox::information(this, tr("Message"), tr("Open."));
ui->pushButton_3->setEnabled(true);
ui->pushButton_2->setEnabled(false);
} else
{
QMessageBox::critical(this, tr("Error"), serial->errorString());
}
}
void MainWindow::on_pushButton_3_clicked()
{
if(serial->isOpen())
serial->close();
QMessageBox::information(this, tr("Message"), tr("Close."));
ui->pushButton_3->setEnabled(false);
ui->pushButton_2->setEnabled(true);
}
На чтение 6 мин. Просмотров 6.3k. Опубликовано 03.09.2019
Последовательный порт может быть полезен, но некоторые пользователи сообщают, что Невозможно открыть последовательный порт на своем ПК. Это может быть большой проблемой, и в сегодняшней статье мы покажем вам, как исправить эту ошибку.
Проблемы с последовательным портом могут быть довольно раздражающими, особенно если вы склонны часто использовать последовательный порт. Говоря о таких проблемах, вот некоторые связанные с ними проблемы, о которых сообщили пользователи:
- Невозможно открыть соединение с com1 Windows 10, com3 . Эта проблема может иногда возникать, если у вас нет необходимых драйверов. Чтобы исправить это, обязательно обновите драйвер последовательного порта и проверьте, решает ли это вашу проблему.
- Замазка не может открыть последовательный порт Windows 10 . Иногда эта проблема может возникать из-за определенных служб Windows. Это не главная проблема, и вы можете исправить ее, отключив эти службы.
- Невозможно открыть последовательный порт. Доступ к com1 запрещен . Эта проблема может возникать из-за глюков с последовательным портом. Чтобы устранить проблему, временно отключите последовательный порт и проверьте, помогает ли это.
- Невозможно открыть com-win win code code 5, 123, 32 . Это некоторые распространенные проблемы, которые могут возникнуть с последовательным портом, но большинство из них можно исправить с помощью одного из наших решений.
Содержание
- Не удается открыть сообщение последовательного порта в Windows 10, как это исправить?
- Решение 1. Убедитесь, что у вас есть необходимые драйверы
- Решение 2. Убедитесь, что порт не открыт/отсоедините кабель
- Решение 3. Остановите службу факсов и сканирования Windows
- Решение 4. Отключите последовательный порт в диспетчере устройств
- Решение 5. Попробуйте использовать другой кабель
- Решение 6 – Перезагрузите устройство
- Решение 7. Переустановите драйвер последовательного порта
- Решение 8. Убедитесь, что система обновлена
Не удается открыть сообщение последовательного порта в Windows 10, как это исправить?
- Убедитесь, что у вас есть необходимые драйверы
- Убедитесь, что порт не открыт/отсоедините кабель
- Остановите службу факсов и сканирования Windows .
- Отключите последовательный порт в диспетчере устройств
- Попробуйте использовать другой кабель
- Перезагрузите устройство
- Переустановите драйвер последовательного порта
- Убедитесь, что система обновлена
Решение 1. Убедитесь, что у вас есть необходимые драйверы
Если вы получаете сообщение Невозможно открыть последовательный порт , возможно, проблема связана с вашими драйверами. Чтобы устранить эту проблему, рекомендуется обновить драйвер последовательного порта. Для этого посетите веб-сайт производителя вашей материнской платы и загрузите последние версии драйверов.
Если вы находите этот процесс утомительным или сложным, вы всегда можете использовать сторонние инструменты, такие как TweakBit Driver Updater , для автоматического обновления всех ваших драйверов всего за пару кликов. Это защитит ваш компьютер от загрузки и установки неправильной версии драйвера, что может привести к серьезным неисправностям.
- Загрузите программу обновления драйверов Tweakbit
Отказ от ответственности: некоторые функции этого инструмента не бесплатны
- ЧИТАЙТЕ ТАКЖЕ: Порт используется, пожалуйста, подождите. Вот как вы можете исправить эту ошибку
Решение 2. Убедитесь, что порт не открыт/отсоедините кабель
Иногда сообщение Невозможно открыть последовательный порт может появляться, если порт уже открыт. Чтобы решить эту проблему, пользователи предлагают отсоединить кабель от другого устройства и попытаться подключиться снова.
Это простой обходной путь, но несколько пользователей сообщили, что он работает для них, поэтому не стесняйтесь попробовать.
Решение 3. Остановите службу факсов и сканирования Windows
Несколько пользователей сообщили, что Невозможно открыть последовательный порт при попытке использовать последовательный порт. Оказывается, проблема заключалась в службе факса и сканирования Windows. Чтобы решить эту проблему, вам просто нужно остановить службу факсов и сканирования Windows. Для этого просто выполните следующие действия:
- Нажмите Windows Key + R , чтобы открыть диалоговое окно Выполнить . Введите services.msc и нажмите Enter или нажмите ОК .
- Когда откроется окно Службы , найдите службу Windows Fax and Scan и дважды щелкните ее, чтобы открыть ее свойства. Если эта служба недоступна, попробуйте изменить настройки службы Факс .
- Установите для Тип запуска значение Вручную и нажмите кнопку Стоп , чтобы остановить службу. Теперь нажмите Применить и ОК , чтобы сохранить изменения.
После этого убедитесь, что проблема все еще существует. Помните, что это всего лишь обходной путь, поэтому вам, возможно, придется повторять его каждый раз, когда вы хотите использовать последовательный порт на вашем ПК.
Решение 4. Отключите последовательный порт в диспетчере устройств
Если вы продолжаете получать сообщение Невозможно открыть последовательный порт на вашем ПК, проблема может быть связана с драйвером последовательного порта. Обычно это происходит из-за временного сбоя, и для решения проблемы рекомендуется временно отключить последовательный порт.Это довольно просто, и вы можете сделать это, выполнив следующие действия:
- Нажмите Windows Key + X и выберите Диспетчер устройств из списка.
- Когда откроется Диспетчер устройств , найдите последовательный порт, щелкните его правой кнопкой мыши и выберите в меню Отключить устройство . Когда появится диалоговое окно подтверждения, нажмите Да .
- Подождите пару секунд, а затем включите последовательный порт.
После этого проверьте, решена ли проблема. Если это решение работает для вас, имейте в виду, что вам придется повторять его каждый раз, когда вы хотите использовать свой последовательный порт.
- ЧИТАЙТЕ ТАКЖЕ: что делать, если служба отчетов об ошибках продолжает перезапускаться
Решение 5. Попробуйте использовать другой кабель
Иногда ошибка Невозможно открыть последовательный порт может появиться, если ваш кабель не работает. Обязательно проверьте, правильно ли подключен кабель. Кроме того, проверьте на наличие видимых повреждений. Если ваш кабель кажется исправным, попробуйте заменить его и проверьте, не возникает ли проблема с другим кабелем.
Решение 6 – Перезагрузите устройство
Если Невозможно открыть последовательный порт продолжает появляться, возможно, вы можете решить проблему, перезапустив свои устройства. Просто перезагрузите устройство, к которому вы пытаетесь подключиться, и проверьте, решает ли это проблему. Кроме того, вы можете перезагрузить компьютер и посмотреть, решит ли это проблему.
Решение 7. Переустановите драйвер последовательного порта
Как мы уже упоминали, иногда проблемы с вашим последовательным портом могут быть вызваны вашими драйверами. Если вы продолжаете получать сообщение Невозможно открыть последовательный порт , вы можете решить проблему, просто переустановив драйвер последовательного порта. Это довольно просто сделать, и вы можете сделать это, выполнив следующие действия:
- Откройте Диспетчер устройств .
- Найдите свой последовательный порт, щелкните его правой кнопкой мыши и выберите Удалить устройство .
- Теперь нажмите Удалить , чтобы подтвердить.
- После удаления устройства перезагрузите компьютер.
После перезагрузки компьютера Windows должна установить драйвер по умолчанию, и проблема с ним будет полностью решена.
Решение 8. Убедитесь, что система обновлена
В некоторых случаях может появиться сообщение Невозможно открыть последовательный порт , если ваша система не устарела. Устаревшая система может привести к различным проблемам совместимости, и лучший способ избежать этих проблем – обновить вашу систему.
Этот процесс довольно прост в Windows 10, и по большей части Windows устанавливает обновления самостоятельно. Однако вы всегда можете проверить наличие обновлений самостоятельно, выполнив следующие действия:
- Откройте приложение Настройки и перейдите в раздел Обновление и безопасность .
- Теперь нажмите кнопку Проверить обновления на правой панели.
Если доступны какие-либо обновления, они будут автоматически загружены в фоновом режиме и установлены, как только вы перезагрузите компьютер. Как только ваша система обновится, убедитесь, что проблема все еще существует.
Невозможно открыть сообщение последовательного порта может быть проблемой для многих пользователей, которые часто используют последовательный порт, но вы должны быть в состоянии решить эту проблему, используя одно из наших решений.
Linar
- Регистрация
- 10.09.2019
- Сообщения
- 5
- Реакции
- 1
- Баллы
- 1
- Город
- Samara
- #1
Доброго времени суток.
Собственно купил, собрал.
Установил драйвер CH340SER.EXE, Candle.
Запустил, порт открыт, в консоле команда [CTRL+X]. Пробовал в ручную и команды вносил, станок молчит, команды стоят в очереди. Иногда выдаёт ошибку последовательности порта №1. Может я где-то что-то упустил? Прошу помочь ибо нервы сдают третий вечер топчусь на одном месте.
hydrooz
- Регистрация
- 27.07.2018
- Сообщения
- 1 031
- Реакции
- 685
- Баллы
- 133
- Возраст
- 31
- Имя
- Григорий
- Плата
- Woodpecker 0.9
- Прошивка
- 1.1f
- #2
COM порт указали в настройках кэндл? И ещё вопрос. Если версия 0.9, то пробуйте для начала grblControl, а не Candle.
Linar
- Регистрация
- 10.09.2019
- Сообщения
- 5
- Реакции
- 1
- Баллы
- 1
- Город
- Samara
- #3
COM порт указали в настройках кэндл? И ещё вопрос. Если версия 0.9, то пробуйте для начала grblControl, а не Candle.
Да указал, порт открыт. С grblControl тоже самое.
hydrooz
- Регистрация
- 27.07.2018
- Сообщения
- 1 031
- Реакции
- 685
- Баллы
- 133
- Возраст
- 31
- Имя
- Григорий
- Плата
- Woodpecker 0.9
- Прошивка
- 1.1f
- #4
Драйвер пробовали переустановить? Может криво встал? Я думаю, что дело где-то в софте.
Linar
- Регистрация
- 10.09.2019
- Сообщения
- 5
- Реакции
- 1
- Баллы
- 1
- Город
- Samara
- 02.11.2019
- Последнее редактирование: 02.11.2019
- #5
Последнее редактирование: 02.11.2019
Драйвер пробовали переустановить? Может криво встал? Я думаю, что дело где-то в софте.
Ваши сообщения автоматически объединены: 02.11.2019
Да пробовал.
Ваши сообщения автоматически объединены: 02.11.2019
grblControl в консоле выдаёт Ошибка последовательного порта 1: No such file or directory
Linar
- Регистрация
- 10.09.2019
- Сообщения
- 5
- Реакции
- 1
- Баллы
- 1
- Город
- Samara
- #6
Ваши сообщения автоматически объединены: 02.11.2019
Да пробовал.
Ваши сообщения автоматически объединены: 02.11.2019
grblControl в консоле выдаёт Ошибка последовательного порта 1: No such file or directory
Всё решилось новой прошивкой платы контроллера. Если кому то интересно
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
1 |
|
23.10.2020, 19:20. Показов 6773. Ответов 100
Здравствуйте. Проблема такая, программы показывают что порт закрыт, оборудование прозванивал всё работает но при подключении ничего не происходит, даже на пк нет сигнала подключения. Дрова качал,ошибок нет!при подключении через usb всё работает но нужен именно com1. Когда я ставлю последовательный порт COM1 показывает ошибку. Но при порте com3 всё без ошибок. Помогите уже полгода решаю проблему все сайты прочитал но всё в бестолку помогите пожалуйста!!!!!!!
__________________ 0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
23.10.2020, 19:20 |
Ответы с готовыми решениями: Последовательный порт в Windows 7 Как открыть порт? Как открыть порт COM 1? Как открыть локальный порт? 100 |
Робот сгибальщик 825 / 453 / 92 Регистрация: 29.07.2020 Сообщений: 2,318 Записей в блоге: 7 |
|
26.10.2020, 22:21 |
2 |
Когда я ставлю последовательный порт COM1 показывает ошибку. Но при порте com3 всё без ошибок. Не понял! А физически-то RS-232 существует? 0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
28.10.2020, 17:45 [ТС] |
3 |
В смысле? Добавлено через 1 минуту Добавлено через 6 минут 0 |
Робот сгибальщик 825 / 453 / 92 Регистрация: 29.07.2020 Сообщений: 2,318 Записей в блоге: 7 |
|
28.10.2020, 17:48 |
4 |
COM порт физически подключен (RS-232)? Или виртуальный через USB? 0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
28.10.2020, 18:41 [ТС] |
5 |
Физически Добавлено через 2 минуты Добавлено через 1 минуту Добавлено через 47 минут 0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
29.10.2020, 21:20 [ТС] |
6 |
0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
30.10.2020, 18:12 [ТС] |
7 |
Эх 0 |
киберпаразит 9719 / 2783 / 188 Регистрация: 14.06.2011 Сообщений: 9,586 |
|
31.10.2020, 00:33 |
8 |
может глюк в контроллере встроенного rs 232? Миниатюры
0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
01.11.2020, 16:51 [ТС] |
9 |
Может быть но я не знаю как это протестить и тем более программы пишут что он закрыт, а иногда при нажатии ОБНОВИТЬ КОНФИГУРАЦИЮ УСТРОЙСТВ горит светодиод на мили секунду но потом гаснет Добавлено через 1 минуту Добавлено через 58 секунд Добавлено через 5 минут Добавлено через 34 секунды 0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
02.11.2020, 18:00 [ТС] |
10 |
700 просмотров а никто не смог ответить 0 |
Искусственный интеллект 112 / 82 / 34 Регистрация: 26.08.2020 Сообщений: 590 Записей в блоге: 1 |
|
02.11.2020, 21:50 |
11 |
0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
03.11.2020, 15:58 [ТС] |
12 |
А если у меня на пк один порт на 9 пинов Добавлено через 1 минуту Добавлено через 1 минуту Добавлено через 2 минуты 0 |
киберпаразит 9719 / 2783 / 188 Регистрация: 14.06.2011 Сообщений: 9,586 |
|
04.11.2020, 10:11 |
13 |
XP-шку попробовать поставить. на ней заморочек с COM поменьше будет. 0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
04.11.2020, 14:18 [ТС] |
14 |
А что такое XP-шку Добавлено через 1 минуту 0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
04.11.2020, 14:24 [ТС] |
16 |
А как я её поставлю если у меня семёрка Добавлено через 42 секунды Добавлено через 4 минуты 0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
04.11.2020, 16:49 [ТС] |
17 |
Я выбрал по тем временам самую лучшую версию. Я уже написал несколько программ в ардуино подключил к порту а не работает. Вероятно дело в компьютере но другого не поэтому пытаюсь открыть порт Добавлено через 5 минут 0 |
2657 / 776 / 173 Регистрация: 14.01.2013 Сообщений: 3,573 |
|
04.11.2020, 18:04 |
18 |
Простенькая программа Putty позволяет потестировать порт. Надо взять заведомо рабочую шелезяку, что-нибудь посылающую в COM порт и в Putty это прочесть. 0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
04.11.2020, 19:36 [ТС] |
19 |
Миниатюры
0 |
0 / 0 / 0 Регистрация: 21.10.2020 Сообщений: 56 |
|
04.11.2020, 19:38 [ТС] |
20 |
Миниатюры
0 |
My issue was due to what physical USB female port I plugged the Arduino cable into on my D-Link DUB-H7 (USB hub) on Windows 10. I had my Arduino plugged into one of the two ports way on the right (in the image below). The USB cable fit, and it powers the Arduino fine, but the Arduino wasn’t seeing the port for some reason.
Windows does not recognize these two ports. Any of the other ports are fair game. In my case, the Tools > Port menu was grayed out. In this scenario, the «Ports» section in the object explorer was hidden. So to show the hidden devices, I chose View > show hidden. COM1 was what showed up originally. When I changed it to COM3, it didn’t work.
There are many places where the COM port can be configured.
Windows > Control Panel > Device Manager > Ports > right click Arduino > Properties > Port Settings > Advanced > COM Port Number: [choose port]
Windows > Start Menu > Arduino > Tools > Ports > [choose port]
Windows > Start Menu > Arduino > File > Preferences > @ very bottom, there is a label named «More preferences can be edited directly in the file».
C:Users{user name}AppDataLocalArduino15preferences.txt
target_package = arduino
target_platform = avr
board = uno
software=ARDUINO
# Warn when data segment uses greater than this percentage
build.warn_data_percentage = 75
programmer = arduino:avrispmkii
upload.using = bootloader
upload.verify = true
serial.port=COM3
serial.databits=8
serial.stopbits=1
serial.parity=N
serial.debug_rate=9600
# I18 Preferences
# default chosen language (none for none)
editor.languages.current =
The user preferences.txt overrides this one:
C:Users{user name}Desktopavrdude.conf
… search for «com» … «com1» is the default
My issue was due to what physical USB female port I plugged the Arduino cable into on my D-Link DUB-H7 (USB hub) on Windows 10. I had my Arduino plugged into one of the two ports way on the right (in the image below). The USB cable fit, and it powers the Arduino fine, but the Arduino wasn’t seeing the port for some reason.
Windows does not recognize these two ports. Any of the other ports are fair game. In my case, the Tools > Port menu was grayed out. In this scenario, the «Ports» section in the object explorer was hidden. So to show the hidden devices, I chose View > show hidden. COM1 was what showed up originally. When I changed it to COM3, it didn’t work.
There are many places where the COM port can be configured.
Windows > Control Panel > Device Manager > Ports > right click Arduino > Properties > Port Settings > Advanced > COM Port Number: [choose port]
Windows > Start Menu > Arduino > Tools > Ports > [choose port]
Windows > Start Menu > Arduino > File > Preferences > @ very bottom, there is a label named «More preferences can be edited directly in the file».
C:Users{user name}AppDataLocalArduino15preferences.txt
target_package = arduino
target_platform = avr
board = uno
software=ARDUINO
# Warn when data segment uses greater than this percentage
build.warn_data_percentage = 75
programmer = arduino:avrispmkii
upload.using = bootloader
upload.verify = true
serial.port=COM3
serial.databits=8
serial.stopbits=1
serial.parity=N
serial.debug_rate=9600
# I18 Preferences
# default chosen language (none for none)
editor.languages.current =
The user preferences.txt overrides this one:
C:Users{user name}Desktopavrdude.conf
… search for «com» … «com1» is the default
«Error 2» is «Cannot find the file specified», that is, cannot find a required DLL file.
Originally, you got this error when you tried to run Portmon from a network location: that broke the security trust, causing Portmon to be untrusted (or perhaps just messing up the search path somehow).
On my copy of Windows 7 64 bit, Microsoft Dependency Walker (depends.exe) tells me that PORTMSYS.SYS (the file created/loaded by Portmon.exe), has unresolved dependencies on ci.dll, clfs.sys, hal.dll and kdcom.dll.
Those are the
code integrity
common log file system
hardware abstraction layer
kernel debugger com
libraries, and they aren’t actually missing: if they were, Windows wouldn’t boot. However, I don’t see a copy of those files in SysWow64. This suggests to me that the problem is not with portman.sys: the problem is with the win32 compatibility layer in Windows 7/64 bit: It doesn’t support debug properly.
It is now 2018. There is no 64-bit version of Portmon. Serial ports are a legacy standard. The Windows 7 problem was fixed by the release of Windows 8.1. However, there is a faint chance that some Visual Studio utility or security update back-ported to Windows 7 will fix the problem. Perhaps someone who is familiar with SysWow and debugging will comment.
В чем может быть проблема? Ниже приведен кусок кода. Так же есть рабочий большой проект с использованием com порта, его тут выкладывать не буду, но суть в том, что на одном пк все работает исправно, на другом вылезает та же ошибка «Не удается найти указанный файл».
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSerialPort>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QMessageBox>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
serial = new QSerialPort(this);
ui->setupUi(this);
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
ui->comboBox->addItem(info.portName());
fillPortsParameters();
}
void MainWindow::fillPortsParameters()
{
ui->baudRateBox->addItem(QStringLiteral("9600"), QSerialPort::Baud9600);
ui->baudRateBox->addItem(QStringLiteral("19200"),
QSerialPort::Baud19200);
ui->baudRateBox->addItem(QStringLiteral("38400"),
QSerialPort::Baud38400);
ui->baudRateBox->addItem(QStringLiteral("115200"),
QSerialPort::Baud115200);
ui->dataBitsBox->addItem(QStringLiteral("5"), QSerialPort::Data5);
ui->dataBitsBox->addItem(QStringLiteral("6"), QSerialPort::Data6);
ui->dataBitsBox->addItem(QStringLiteral("7"), QSerialPort::Data7);
ui->dataBitsBox->addItem(QStringLiteral("8"), QSerialPort::Data8);
ui->dataBitsBox->setCurrentIndex(3);
ui->parityBox->addItem(tr("None"), QSerialPort::NoParity);
ui->parityBox->addItem(tr("Even"), QSerialPort::EvenParity);
ui->parityBox->addItem(tr("Odd"), QSerialPort::OddParity);
ui->parityBox->addItem(tr("Mark"), QSerialPort::MarkParity);
ui->parityBox->addItem(tr("Space"), QSerialPort::SpaceParity);
ui->stopBitsBox->addItem(QStringLiteral("1"), QSerialPort::OneStop);
#ifdef Q_OS_WIN
ui->stopBitsBox->addItem(tr("1.5"), QSerialPort::OneAndHalfStop);
#endif
ui->stopBitsBox->addItem(QStringLiteral("2"), QSerialPort::TwoStop);
ui->flowControlBox->addItem(tr("None"), QSerialPort::NoFlowControl);
ui->flowControlBox->addItem(tr("RTS/CTS"),
QSerialPort::HardwareControl);
ui->flowControlBox->addItem(tr("XON/XOFF"),
QSerialPort::SoftwareControl);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
int current_port;
current_port = ui->comboBox->currentIndex();
//qDebug() << serial.currentReadChannel();
serial->setBaudRate(QSerialPort::Baud9600);
serial->setDataBits(QSerialPort::Data8);
serial->setParity(QSerialPort::NoParity);
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
serial->setPortName("COM1");
if(serial->isOpen())
qDebug() << "1";
if (serial->open(QIODevice::ReadWrite))
{
QMessageBox::information(this, tr("Message"), tr("Open."));
ui->pushButton_3->setEnabled(true);
ui->pushButton_2->setEnabled(false);
} else
{
QMessageBox::critical(this, tr("Error"), serial->errorString());
}
}
void MainWindow::on_pushButton_3_clicked()
{
if(serial->isOpen())
serial->close();
QMessageBox::information(this, tr("Message"), tr("Close."));
ui->pushButton_3->setEnabled(false);
ui->pushButton_2->setEnabled(true);
}
SECU-3.org
МПСЗ | ЭСУД SECU-3 — Микропроцессорная система зажигания и впрыска
Skip to content
-
Home
Board index
SECU-3 (Русский)
Программное обеспечение для ПК и релизы ПО
-
Search
-
Максим80
- Posts: 23
- Joined: 27 Feb 2019, 22:34
- Your CAR: ваз 21099
- SECU version: DIY SECU-3
- Has thanked: 1 time
- Been thanked: 1 time
Re: всплывает окно COM open filed: Port=COM1 Error=2
Post
by Максим80 » 01 Sep 2021, 18:51
STC wrote: ↑01 Sep 2021, 12:33
Указать в выпадающем списке портов в окне настроек менеджера реально существующий порт. Там же даже автоматически показываются какие есть.
там стоит галочка на реально существующий порт. однако строка ниже неактивна.
Сначала проверьте последовательные порты. Загрузите Windows, но не подключайте плату Arduino или ESP8266. На рабочем столе щелкните правой кнопкой мыши (ПКМ) по ярлыку Этот компьютер (Компьютер). В меню выберите Свойства. В окне Система щелкните по ссылке Диспетчер устройств. В окне Диспетчер устройств откройте Порты (COM и LPT). Должен присутствовать последовательный порт COM1.
Теперь воткните в USB порт кабель от Arduino или ESP8266. В диспетчере устройств должен появиться дополнительный COM порт. Я подключил NodeMCU v3 и появился дополнительный порт COM3.
Если порт определился, но никаких сообщений в монитор порта не выводится, то проверьте скорость порта. В настройках Arduino IDE выставьте скорость порта ту, которая прописана в скетче. В окне монитора порта нажмите кнопку Очистить вывод. После этого монитор порта должен заработать.
Если ничего не изменилось и присутствует только порт COM1, то значит у вас проблемы с последовательным портом.
В этом случае при запуске скетча в окне выдается сообщение «Порт недоступен», «Ошибка подключения последовательного порта», «Порт не найден» и т.п. После этого начинаются пляски с бубном — отключаются и снова подключаются кабели, перезагружается компьютер. Иногда это помогает, иногда — нет.
Вероятная причина ошибки порта — помехи при передаче данных по USB кабелю. Как это не банально, но чаще всего причина в некачественном кабеле.
Поделюсь своим опытом. Тоже долгое время мучился с ошибкой порта, пробовал разные варианты — в общем, работало, но как-то нестабильно. Понадобился мне для чего-то кабель USB — microUSB. Пошел, купил в магазине предложенный мне такой кабель. Он работал, потом какое-то время валялся без дела. Чисто случайно подключил его к ESP8266. И, о чудо, скетч загрузился без проблем. Потом еще не раз редактировал скетч и каждый раз загрузка проходила без проблем. И тут я понял, вся проблема у меня была в некачественном кабеле. Так что не стоит экономить на кабеле, купите пусть более дорогой, но качественный кабель. Не используйте дешевые поделки, тем более кабели от зарядных устройств. В них жилы для передачи данных могут быть выполнены некачественно или вообще отсутствовать.
Вторая вероятная причина — слаботочный USB порт. Замените ненадёжный кабель и не используйте разбитые USB разъёмы.
По второй причине — недостаточно тока для питания Arduino или ESP8266. USB порт в материнской плате компьютера может быть запитан от источника с малым выходным током. Попробуйте самое простое — подключить Arduino к другому порту в надежде на то, он запитан от более мощного источника. Такое возможно, если USB портов несколько. Кардинальное решение — подключить Arduino или ESP8266 через USB хаб (USB — разветвитель) с внешним блоком питания с выходным током не менее 2 — 3 А.
Радиолюбители, умеющие паять, могут поступить проще — подпаять короткими проводами к разъему USB в параллель еще один разъем USB, в который завести от основного разъема два провода питания GND и +5В. Или купите такой кабель, если есть такая возможность. Такой прием используют фирмы, когда питания от одного разъема USB не хватает, например для питания жесткого диска, подключенного к порту USB (USB HDD). Таким образом устройство получит дополнительное питание от другого порта USB.
Ещё одно причина нехватки питания для портов USB — подключение к роутеру по Wi-Fi. Wi-Fi адаптер потребляет значительный ток и нагружает шину питания портов USB. В связи с этим отключите Wi-Fi адаптер и подключите компьютер к роутеру кабелем. Иногда это сразу может решить проблему.
Предпочтительно использовать компьютер с подключением клавиатуры и мыши к портам PS/2. Клавиатура и мышь с подключением по USB будут дополнительно нагружать шину +5В USB и питания для Arduino или Node MCU может не хватить. Отключите на время принтер, подключенный по USB, смартфон, подключенный по USB и другие устройства, подключенные к портам USB, без которых можно обойтись, так как они потребляют ток по шинам USB. Кроме того, они могут просто влиять на порты USB и вызывать сбои системы.
По возможности используйте десктоп с достаточно мощным блоком питания, который обеспечивает с запасом ток по шине +5В. Некоторые дешёвые материнские платы при подключении двух-трёх USB устройств уже начинают давать сбои.
Используйте короткий USB кабель, насколько это возможно. Это уменьшит помехи при передаче данных.
Не используйте USB удлинители, подключайте Arduino или ESP8266 непосредственно к USB портам компьютера на задней стенке системного блока. Не используйте USB разъёмы на передней панели системного блока или USB порты картридера. Они подключаются к материнской плате кабелями. Это увеличивает помехи при передаче данных.
Самый действенный способ снизить помехи это использовать USB кабель с ферритовыми фильтрами — цилиндрическими утолщениями из ферритовых колец на концах кабелей.
Фильтры бывают съемными, они надеваются на кабель и защелкиваются.
Можно изготовить фильтр самостоятельно. Возьмите ферритовое кольцо диаметром около 20 мм, притупите острые кромки наждачной бумагой, сделайте один виток кабеля вокруг сердечника и зафиксируйте кольцо на кабеле с помощью скотча или термоусадочной трубки.
Если использовать кольца небольшого диаметра, то никакой фиксации не понадобится. Например, я использовал два кольца, снятые с неисправной материнской платы. Только придется разрезать кабель и затем спаять его снова или припаять новый USB разъем.
Бывают ситуации, когда Arduino работает нормально, а при подключении ESP8266 появляются ошибки и скетч не работает. Такое может быть из-за того, что Wi-Fi передатчик модуля потребляет довольно значительный ток и для нормальной работы просто не хватает тока. Подключите ESP8266 через USB хаб с внешним блоком питания с выходным током 2-2.5-3 А. Также используйте для подключения короткие кабели с ферритовыми фильтрами на концах.
Желательно использовать Micro-USB или Mini-USB кабель с двумя USB разъемами на конце. Отвод с USB разъемом служит для подачи дополнительного питания. Радиолюбители могут без труда подпаять дополнительный USB разъем сами.
Если USB порты на материнской плате слабы по токам питания, то можно попробовать дополнительно подключить в PCI разъем контроллер USB. Подключите к этому контроллеру USB-мышь и USB-клавиатуру. К USB портам на материнской плате подключайте только Arduino или NodeMCU v3. К PCI разъему подводится более мощное питание. Один из таких контроллеров показан на фото:
Пробуйте подключаться к разным USB разъёмам компьютера, если их несколько, или разным разъёмам USB хаба.
Если ваш компьютер имеет порты USB2.0 и USB3.0, то пробуйте подключаться к тем и другим. Скорее всего лучшие результаты получите при подключении к USB2.0. Драйвер USB3.0 может работать некорректно.
Windows иногда просто не может определить порт. Проверьте контакты блока питания USB хаба в розетке сети. Если блок питания болтается, то о надёжной работе USB портов не может быть и речи.
Подключайте плату Arduino или ESP8266 в USB разъём после полной загрузки Windows.
При переключениях в другие порты номер порта может измениться. Проверяйте номер порта. В верхнем меню Arduino IDE выберите Сервис (Tools) -> Последовательный порт (Serial Port). Рядом с портом COM1 должен быть дополнительный порт. Поставьте галку, чтобы активировать его.
Работу COM порта и загрузку скетча визуально можно проверить по миганию светодиодов RX и TX на плате Arduino или по частому миганию светодиода рядом с Wi-Fi антенной на плате ESP8266 (NodeMCU v3).
Несмотря на все ухищрения, Windows 10 не открывает COM порт для Node MCU v3 (ESP-12E). Иногда подключает порт и тут же сбрасывает его и так без конца.
Подключил Node MCU v3 (ESP8266) через USB хаб с внешним блоком питания к компьютеру с Windows XP SP3. Установил драйвер ch341ser.exe и Arduino IDE 1.6.5. COM порт определяется и работает. В Windows XP COM порты определяются более надёжно. Проверил это на двух компьютерах с Windows XP с Intel и AMD процессорами.
Однако некоторые скетчи уже не используют приложения Win32 и при компиляции выдаётся ошибка. В этом случае потребуется как минимум 64-разрядная Windows 7.
COM порты виртуальные и, как в любой программе, возможен сбой при определении порта.
Семипортовые USB хабы (разветвители), как пишут в интернете, имеют две микросхемы по 4 порта. Последний порт первой микросхемы используется для подключения второй микросхемы. В итоге получается 3+4 порта. Можно попробовать подключать Arduino или Node MCU в разные порты хаба.
В Windows откройте Диспетчер устройств, раскройте Порты (COM и LPT). Не закрывайте это окно. Начинайте пробовать разные кабели, разные порты и разные варианты подключения оборудования и, как только порт надёжно определится в Диспетчере устройств, запомните эту конфигурацию оборудования.
И последнее и, может быть, самое главное. Большинство бестрансформаторных блоков питания (зарядных устройств), выполненных в корпусе-вилке, не обеспечивают заявленных характеристик. Например, у зарядного устройства 5V 2.1А, показанного ниже, при токе 0,9 А напряжение на выходе падает до 3,8 В. Сомневаюсь в том, что такой блок питания вообще может отдать в нагрузку ток 2А.
При подозрениях на проблему с питанием используйте трансформаторный блок питания. По габаритам он будет намного больше, зато надежно обеспечит расчетные ток и напряжение.
Рекомендации по блоку питания (из книги «Неисправности вашего ZX SPECTRUM» С.-Петербург, 1991):
«Советуем Вам выбрать самую простую, но и самую надежную схему: трансформатор — диодный мост — конденсатор фильтра — микросхема КР142ЕН5А в стандартном включении — блокировочный конденсатор.
Не стремитесь к чрезмерной миниатюризации! Трансформатор должен иметь мощность не менее 15 Вт, провод вторичной обмотки диаметр не менее 0,7 мм и напряжение на вторичной обмотке под нагрузкой 7-8 Ом должно быть 9-10 В.
Диодный мост подойдет любой из серий КЦ402, КЦ405. Конденсатор фильтра должен быть не менее 4000 мкФ, а рабочее напряжение — не ниже 16 В. На выходе ЕН5А поставьте блокировочный конденсатор 100-200 мкФ на 10-16 В. После сборки БП проконтролируйте напряжение на входе ЕН5А при подключенной нагрузке 5 Ом — должно быть 10,5-11 В.
Если это не так — отмотайте или домотайте несколько витков вторичной обмотки трансформатора. Затем проконтролируйте под нагрузкой 5 Ом напряжение на выходном разъеме БП — должно быть 4,9 — 5,1 В. При низком напряжении придется взять более толстый провод для подсоединения разъема.
При окончательной проверке БП посмотрите на осциллографе переменную составляющую напряжения на пределе 10 мВ (под нагрузкой 5 Ом) — заметных отклонений от прямой линии не должно быть.
В случае неудачи емкость фильтрующего конденсатора нужно увеличить.
Наконец, позамыкайте выход БП накоротко и убедитесь, что ЕН5А не выходит из строя.»
Вместо диодного моста КЦ можно применть более компактный диодный мост DB157S.
Некоторые экземпляры ЕН5А имеют на выходе напряжение чуть меньше 5 В. Для регулировки выходного напряжения соберите блок питания по схеме:
Номиналы резисторов R1 и R2 вы можете рассчитать сами. Например, после мостика на конденсаторе фильтра под нагрузкой у вас получилось напряжение 15 В. Напряжение на стабилитроне составит 3-3,3 В. Значит на резисторе R1 должно упасть 15 — 3 = 12 В. Ток стабилитрона КС133А 10 мА, т. е. 0,01 А. По закону Ома R = V/I. R = 12/0.01= 1200 Ом = 1,2 кОм. Также можно попробовать стабилитрон КС119А (напряжение стабилизации 1,9 В). Резистор R2 можно взять сопротивлением раза в три больше, чем R1, чтобы не так сильно шунтировал стабилитрон. R2 будет 3 — 3,6 кОм. Мощность рассеивания тоже рассчитывается по закону Ома. Резистор 0,25 Вт будет с большим запасом по мощности рассеивания. Для регулировки напряжения удобно использовать подстроечный многооборотный резистор СП5-3 или аналогичный.
Аккуратнее с регулировкой напряжения, а то выведите из строя само устройство. Вначале для проверки блока питания подключите нагрузку — резистор 5 Ом 5 Вт. Ток нагрузки будет 1 А. Резистором R2 установите напряжение на выходе + 5,0 ÷ 5,25 В.
Для повышения напряжения на выходе есть более простой вариант — включить в разрыв между выводом ЕН5А и общим проводом диод Д9Б. Так сделано в блоке питания для компьютера Специалист — М (ж. «Моделист-конструктор» № 4, 1991 г.)
Если вы хотите получить выходной ток 2 А, то вместо моста КЦ используйте четыре диода КД202. Также можно соединить «этажеркой» в параллель два мостика КЦ405, спаяв одноименные выводы между собой. Тогда вторичную обмотку выберите с проводом потолще. ЕН5А прикрепите к радиатору достаточных габаритов. О расчете трансформатора блока питания можно прочитать на странице Простейший расчет силового трансформатора. Сейчас проще подобрать трансформатор из готовых, например в ЧИП и ДИП. При этом учтите то, что входное напряжение КР142ЕН5А должно быть в диапазоне 7,5В < Vвх < 15В.
Если описанные меры не помогают и виртуальный COM порт не появляется или в Диспетчере устройств Windows строка виртуального порта все-таки появляется, помеченная желтым знаком вопроса (восклицательным знаком), то скорее всего проблема с драйвером CH340. Щелкнув по строке правой кнопкой мыши и выбрав Свойства, можно увидеть сообщение о том, что драйвер не подписан цифровой подписью. Попробуйте скачать другие версии драйвера CH340 (с разной длиной файла) и по очереди устанавливать их, удаляя старые версии.
Например, мне для Node MCU v.3 в Windows 7 максимальной подошел драйвер driver_ch340_341_arduino.exe (235 kb). Плата Node MCU v.3 подключена к контроллеру USB, который установлен в PCI разъем материнской платы.
На этом же ресурсе https://myrobot.ru/ можно скачать драйвер CH340 (480 kb) для Windows, Mac OS и Linux.
Если есть подозрения на глюки системы, то тогда можно попробовать переустановить систему Windows.
Если все описанные меры не дали надежного результата, то скорее всего ваш системный блок имеет слаботочные порты USB и маломощный блок питания. Тут может помочь замена материнской платы и блока питания на более мощные, т.е по сути нужен новый системный блок.
Резюме
Чтобы устранить ошибки последовательного порта —
► используйте для питания Arduino или ESP8266 USB порты с достаточным выходным током или USB хаб с внешним блоком питания.
► используйте для подключения короткие USB кабели с ферритовыми фильтрами около разъемов.
► попробуйте разные версии драйвера CH340, если не поможет — тогда другую версию Windows.
► используйте качественный кабель со всеми сигнальными жилами, а не кабель от зарядного устройства.
Последнее редактирование 23 мая 2023 г.
Использованные ресурсы
https://wm-help.net/lib/b/book/1248084587/4
https://masterpaiki.ru/top-10-samyih-chastyih-neispravnostey-zhk-monitorov.html
https://www.dns-shop.ru/product/3a24983fdab4526f/usb-razvetvitel-ginzzu-gr-487ua/opinion/
https://kiloom.ru/spravochnik-radiodetalej/microsxema/k142en5a-k142en5b-k142en5v-k142en5g-kr142en5a-kr142en5b-kr142en5v-kr142en5g.html