База знаний · Монитор порта и график

Монитор и прошивка не воюют за порт

Порт один, желающих двое — и программа делит его сама: без «закройте монитор».

Ветераны Arduino помнят этот ритуал: перед каждой прошивкой — закрыть монитор порта, иначе «порт занят»; после — открыть заново. Сотни раз за проект. В Trema IDE ритуал отменён: монитор и загрузчик делят порт сами, без вашего участия.

В чём была проблема

COM-порт — ресурс единоличный: с платой одновременно может говорить только одна программа. Открытый монитор держит порт — и загрузчик прошивки получает отказ. Старые среды перекладывали конфликт на пользователя: «сам закрой, сам открой». Тысячи учеников по всему миру заучивали этот танец как часть профессии.

Как это решено у нас

  1. Вы жмёте «Собрать/Прошить» при открытом мониторе.
  2. На время загрузки программа сама приостанавливает монитор и отдаёт порт загрузчику.
  3. Прошивка завершилась — порт возвращается монитору, лента продолжает бежать. Вы ничего не делали.
Монитор порта Trema IDE остаётся открытым во время прошивки — порт делится автоматически
Монитор можно вообще не закрывать: программа уступит порт загрузчику и вернёт обратно.

Проверить удобно на скетче-эхо: он отвечает на всё, что вы напишете, — значит, сразу видно, жива ли связь после прошивки.

void setup() {
  Serial.begin(9600);
  Serial.println("Напишите что-нибудь и нажмите «Отправить»");
}

void loop() {
  // available() — сколько байт уже пришло от компьютера.
  if (Serial.available() > 0) {
    String line = Serial.readStringUntil('\n');  // читаем строку целиком
    line.trim();                                 // убираем лишние пробелы

    Serial.print("Вы прислали: ");
    Serial.println(line);
    Serial.print("Длина строки: ");
    Serial.println(line.length());
  }
}

Что это меняет в работе

Цикл «поправил код → прошил → смотрю вывод» становится непрерывным: никаких пауз на управление окнами. Именно в этом цикле живёт отладка печатью — и каждый лишний клик в нём умножался на десятки повторов. Теперь цикл чистый: правка, кнопка, лента.

Если «порт занят» всё же появился

Внутри Trema IDE конфликтов не бывает — значит, порт держит посторонняя программа: другая среда, терминалка, программа-компаньон гаджета. Разбор и лечение — в статье «Порт занят: кто держит COM-порт».

Обновлено: 19 июля 2026