Нужно ли что-нибудь скачивать или устанавливать?
В Chrome и Edge — нет: страница использует встроенный в браузер Web Serial API, без десктопного клиента и без расширений. В Firefox 151 и новее сначала установите дополнение с разрешением для сайта, которое он предложит: это механизм разрешений браузера, а не драйвер последовательного порта. В любом случае нужен драйвер микросхемы преобразователя: если COM-порт виден в Диспетчере устройств, драйвер работает; если нет, скачайте драйвер с сайта производителя микросхемы.
Какие браузеры подходят? Можно ли работать с телефона?
Десктопные Chrome, Edge и Opera (Chrome 89 и новее) подключаются напрямую. Десктопный Firefox 151 и новее тоже работает после установки дополнения с разрешением для сайта, которое он предложит. Safari и iOS не поддерживают Web Serial. Chrome для Android 138+ открывает доступ только к последовательным портам Bluetooth (RFCOMM); для проводных последовательных портов USB нужны Chrome 148+ и Android 17, причём сам телефон должен предоставлять доступ к проводным последовательным портам. Если страница не может подключиться, она так и скажет, а демо-устройство всё равно работает.
Загружаются ли данные порта на сервер?
Нет. Браузер читает порт и пишет в него напрямую, а инструмент никогда не передаёт на наши серверы байты, которые вы отправляете или принимаете. История отправки и настройки хранятся в вашем же браузере.
После нажатия «Выбрать порт и подключиться» список портов пуст. Что делать?
Операционная система не обнаружила последовательное устройство. Проверьте, что кабель передаёт данные, а не только питание, и что на плату подано питание. В Windows COM-порт должен появиться в Диспетчере устройств; если его нет, установите драйвер для микросхемы (CH340, CP2102 и т. д.).
Почему порт не открывается?
Браузер сообщает о любой неудаче одним и тем же текстом — Failed to open serial port., — поэтому причину приходится искать методом исключения. Одна из частых причин — порт занят другой программой: закройте другие терминалы, монитор порта Arduino IDE, IDE в режиме отладки или другую вкладку с этим инструментом. На Linux пользователь должен входить в группу dialout (на Arch — uucp). Также проверьте, что устройство всё ещё подключено, и попробуйте стандартную скорость — некоторые драйверы отвергают нестандартные.
Как исправить кракозябры вместо китайского текста?
Сначала посмотрите на латинские буквы и цифры. Если с ними всё в порядке и искажён только китайский текст, дело в несовпадении кодировок; частый случай — устройство отправляет GBK. Инструмент это распознаёт, предлагает переключиться и перерисовывает уже принятое. Если искажены и буквы с цифрами, с устройством не совпадает скорость или другая настройка.
Как отправить HEX? Какие форматы принимаются?
Переключите режим отправки на HEX и введите 01 03 00 0A, 0x01,0x03 или 0103000A — в верхнем или нижнем регистре. О недопустимых символах вроде G и нечётном числе цифр инструмент сообщает и никогда их не пропускает, а байты к записи показываются в предпросмотре под полем ввода.
Как добавить Modbus CRC и почему младший байт идёт первым?
Выберите в списке «Добавить контрольную сумму» вариант CRC-16/MODBUS и введите только адрес, код функции и данные — CRC допишется в конце. Modbus RTU отправляет младший байт CRC первым: 0xCDC5 уходит как C5 CD.
Почему один кадр разбит на две строки или несколько кадров слились в одну?
Вид HEX делит поток на кадры по паузе между поступлениями данных, по умолчанию 50 мс. Если устройство посреди кадра замолкает дольше, кадр разбивается; если кадры идут плотнее, они сливаются. Задайте порог больше паузы внутри кадра и меньше промежутка между кадрами.
Что такое DTR и RTS и почему плата перезагрузилась при подключении?
DTR и RTS — две управляющие линии последовательного порта, которые на многих платах заведены на схему сброса. Открывая порт, Chrome делает обе линии активными — это особенность реализации, а не требование стандарта, — поэтому платы, которые сбрасываются по DTR, например Arduino Uno, обычно один раз перезагружаются при подключении, и веб-страница не может этому помешать. В распространённой схеме автопрошивки ESP32 чип работает нормально, пока активны обе линии, и удерживается в сбросе, только когда RTS активна, а DTR — нет. Пользуйтесь переключателями после подключения; если ESP32 замолчал, проверьте, не выключили ли вы один только DTR.
Можно ли одновременно открыть тот же порт в другом терминале?
В Windows — нет: COM-порт может быть открыт только в одной программе одновременно. В Linux и macOS это зависит от того, запросила ли первая программа монопольный доступ. Если запросила, открыть порт здесь не получится; если нет, порт откроют обе программы и будут делить входящие данные между собой, что выглядит как потеря байтов. Работайте с портом из одной программы за раз.
Поддерживаются ли нестандартные скорости?
Да. Последний пункт списка — «Произвольная…», где можно ввести любую скорость, например 74880 — на ней печатает загрузочный ROM ESP8266. Браузер передаёт значение без изменений; заработает ли оно, зависит от микросхемы USB–UART и её драйвера. Некоторые округляют его до ближайшей поддерживаемой скорости, а на некоторых системах порт после этого не открывается.
Что такое демо-устройство?
Это встроенный в страницу имитатор микроконтроллера, так что оборудование не нужно. При подключении он выводит стартовое сообщение в GBK — готовую демонстрацию подсказки о кодировке, — а затем каждые 2 секунды сообщает температуру. На AT он отвечает OK, на остальные AT-команды — ERROR. Запрос чтения Modbus функцией 03, адресованный ведомому 1 и с правильным CRC, получает ответ; как и настоящее ведомое устройство, имитатор молчит, если CRC неверен или кадр адресован другому устройству. Всё остальное возвращается эхом.