ESP8266:Прошивки/Arduino/Отладка: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


=Отладка<ref>[http://arduino-esp8266.readthedocs.io/en/latest/Troubleshooting/debugging.html arduino-esp8266.readthedocs.io - Debugging]</ref>=
=Отладка<ref>[http://arduino-esp8266.readthedocs.io/en/latest/Troubleshooting/debugging.html arduino-esp8266.readthedocs.io - Debugging]</ref>=
Строка 15: Строка 15:
Код, которого достаточно для отладки:
Код, которого достаточно для отладки:


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
void setup() {
void setup() {
     Serial.begin(115200);
     Serial.begin(115200);
Строка 63: Строка 63:
Отладочные сообщения будут выводиться в монитор порта только в том случае, если в пункте '''«Debug port»''' задан отладочный порт.
Отладочные сообщения будут выводиться в монитор порта только в том случае, если в пункте '''«Debug port»''' задан отладочный порт.


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
#ifdef DEBUG_ESP_PORT
#ifdef DEBUG_ESP_PORT
#define DEBUG_MSG(...) DEBUG_ESP_PORT.printf( __VA_ARGS__ )
#define DEBUG_MSG(...) DEBUG_ESP_PORT.printf( __VA_ARGS__ )
Строка 85: Строка 85:
=См.также=
=См.также=


{{ads}}
 


=Внешние ссылки=
=Внешние ссылки=
Строка 91: Строка 91:
<references />
<references />


{{Навигационная таблица/ESP8266}}
{{Навигационная таблица/Портал/ESP8266}}
{{Навигационная таблица/ESP8266 AT-команды}}
 
{{Навигационная таблица/Телепорт}}
 
[[Категория:ESP8266]]
[[Категория:ESP8266]]

Текущая версия от 12:52, 18 июня 2023

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



Отладка[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);
}

См.также

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