ESP8266:Прошивки/Arduino/Отладка

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



Отладка[1]

Начиная с версии 2.1.0-rc1, аддон ESP8266 для IDE Arduino оснащен функцией отладки, управляемой через новые пункты в меню «Инструменты». Отладочные сообщения выводятся в режиме реального времени.

Требования

Для отладки потребуется последовательное соединение с платой (через Serial или Serial1). Класс Serial нужно инициализировать в блоке setup(). Скорость передачи данных выставьте на максимум, на который способно ваше оборудование.

Код, которого достаточно для отладки:

void setup() {
    Serial.begin(115200);
}

void loop() {
}

Использование

1. В пункте «Debug port» выберите интерфейс «Serial»:

2. Выберите тип/уровень, который хотите использовать для отладочных сообщений:

3. Проверьте, инициализировано ли в setup() последовательное соединение. Подробнее читайте выше, в разделе «Требования»

4. Загрузите скетч

5. Начните смотреть сообщения в мониторе порта

Информация

Функция отладки работает с любым скетчем, в котором включено последовательное соединение на выбранном в IDE Arduino отладочном порте. При этом сам скетч может нормально использовать это последовательное соединение для собственных целей. Вывод отладочной информации опционален и не помешает работе (тем более – не отключит) никакой интерфейс, используемый в скетче.

Для разработчиков

Для управления отладкой используйте директивы #define. Они задаются в командной строке.

Отладочный порт

У порта есть define-директива DEBUG_ESP_PORT, которая может принимать следующие значения:

  • Disabled – это значит, что #define не существует
  • Serial – интерфейс Serial
  • Serial1 – интерфейс Serial1

Уровень/тип отладки

Все #define, независимо от уровня/типа, начинаются с DEBUG_ESP_. Полный список можно найти в файле «boards.txt».

Пример

Отладочные сообщения будут выводиться в монитор порта только в том случае, если в пункте «Debug port» задан отладочный порт.

#ifdef DEBUG_ESP_PORT
#define DEBUG_MSG(...) DEBUG_ESP_PORT.printf( __VA_ARGS__ )
#else
#define DEBUG_MSG(...)
#endif

void setup() {
    Serial.begin(115200);

    delay(3000);
    DEBUG_MSG("bootup...\n");  //  "загрузка...\n"
}

void loop() {
    DEBUG_MSG("loop %d\n", millis());  //  "цикл %d\n"
    delay(1000);
}

См.также

Внешние ссылки