
Съдържание:
- Консумативи
- Стъпка 1: Вижте видеото
- Стъпка 2: Хардуер - части и окабеляване
- Стъпка 3: Хардуер - Настройка на драйвера
- Стъпка 4: Софтуер: Инсталиране на PlatformIO
- Стъпка 5: Софтуер: Използване на PlatformIO
- Стъпка 6: Отстраняване на грешки: Потенциална бананова кожа
- Стъпка 7: Отстраняване на грешки: Конфигурация
- Стъпка 8: Отстраняване на грешки: Стартиране на отстраняване на грешки
- Стъпка 9: Отстраняване на грешки: Основно използване
- Стъпка 10: Отстраняване на неизправности
- Стъпка 11: Заключение
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57

Искали ли сте някога да надникнете в кода си, за да видите защо се държи така, както е? Традиционно в проектите на ESP32 би трябвало да добавите безкрайно изявление за печат, за да разберете какво се случва, но има по -добър начин!
Дебъгерът е начин да видите какво се случва в определени раздели на вашия код и да изпробвате различни стойности на променливи, без да прекомпилирате кода си, обикновено това не е нещо, което ни е достъпно за вградени проекти, но в това ръководство ще ви покажа как да го използвате на ESP32.
В това ръководство ще ви покажа как да настроите хардуера, да настроите софтуера и да покажа прост пример за използване на дебъгъра.
Консумативи
-
ESP -Prog - Това е дъската, необходима за отстраняване на грешки
- Точна, която си купих*
- $ 5 по -евтин, но не съм го тествал*
-
ESP32, който избухва щифтове 12, 13, 14, 15
- Адафрутно перо Huzzah32
- D1 Mini ESP32*
-
[ОПЦИОНАЛНО] Щит за отстраняване на грешки продавам на Tindie
- Перо Huzzah32
- D1 Mini ESP32
* = Партньорска връзка
Стъпка 1: Вижте видеото


Имам видео по тази тема, ако искате да го разгледате.
В моя канал обикновено правя видеоклипове, базирани на ESP8266 и ESP32, така че ако се интересувате от тях, моля, проверете го!
Стъпка 2: Хардуер - части и окабеляване



За да използвате инструмента за отстраняване на грешки, се нуждаете само от ESP-Prog и почти всяка платка ESP32 (връзки към тях в по-ранна стъпка)
ESP-Prog:
ESP-Prog е платка, проектирана от espressif, производителите на чипове ESP32 и ESP8266. Той се свързва с JTAG щифтове на ESP32, за да ни позволи да използваме грешката за отстраняване на грешки. Може да се използва и за програмиране на ESP32 платки, но няма да обхващам това тук.
ESP32 платка:
Можете да използвате основно всяка ESP32 платка за това, след като избухне щифтовете JTAG, които са 12, 13, 14 и 15. Тествал съм както Adafruit перо Huzzah32, така и D1 Mini 32 платка и двете работиха добре.
Моля, обърнете внимание, че можете да използвате щифтовете JTAG в скицата си с дебъгъра, например вграденият светодиод на платката Huzzah32 е на пин 13, така че не можете да го използвате по време на отстраняване на грешки.
Електрически инсталации:
За да свържете ESP-Prog към ESP32, просто използвайте ръководството за окабеляване, както е показано на снимката по-горе. Проверете с диаграмата на окабеляване на вашата платка ESP32, ако не видите веднага подходящите щифтове, тъй като понякога те използват различна схема за именуване.
Отстраняване на грешки в щитове:
Те не са задължителни, но продавам някои щитове на Tindie за Huzzah32 и D1 Mini 32, които правят свързването на ESP-Prog наистина лесно, той разбива подходящите щифтове към IDC конектор, който можете да използвате с лентов кабел, за да се свържете директно между щита и ESP-Prog
Стъпка 3: Хардуер - Настройка на драйвера



За да използваме ESP-prog за отстраняване на грешки, трябва да инсталираме подходящите драйвери за него. PlatformIO предоставя някои стъпки за това тук, но ще премина през стъпките на Windows в това ръководство.
- Изтеглете и инсталирайте драйверите за FTDI за ESP-Prog от тук, превъртете надясно, за да изтеглите версията "setup executable", за да улесните.
- Изтеглете и инсталирайте инструмента Zadig от тук, това ни позволява да инсталираме общ драйвер, необходим за отстраняване на грешки.
- С включен ESP-Prog, отворете Zadig
- В приложението Zadig под „Опции“щракнете върху „Избройте всички устройства“
- Падащото меню в Zadig вече ще бъде запълнено, изберете опцията „Dual RS232-HS (Interface 0)“. Уверете се, че сте избрали интерфейс 0!
- Вдясно от зелената стрелка трябва да бъде избран „WinUSB“, след което щракнете върху „Замяна на драйвера“
Когато това приключи, вашите драйвери трябва да бъдат настроени за използване!
Забележка: Ако смените USB порта, който използвате за ESP-Prog, може да се наложи да повторите стъпки 3-6 отново. Ако получите грешка, както е показано на снимката по -горе при отстраняване на грешки, трябва да повторите стъпките.
Стъпка 4: Софтуер: Инсталиране на PlatformIO



PlatformIO е IDE за разработка с различни различни вградени рамки, включително екосистемата Arduino. Той е по-сложен за използване от нещо като Arduino IDE, но е много мощен и има някои функции, които на Arduino IDE много липсват, като например автоматично попълване.
Изисква се от PlatformIO да използва дебъгъра. Ако вече сте запознати с PlatformIO, не се колебайте да прескочите няколко стъпки напред.
- Изтеглете и инсталирайте Visual Studio Code (VS Code) от връзката, предоставена на уебсайта на PlatformIO.org
- Отворете VS Code и отворете менюто за разширения, бутонът е маркиран на горната снимка
- Въведете „platformio“в търсенето, изберете го и щракнете върху инсталиране.
Стъпка 5: Софтуер: Използване на PlatformIO



Използването на PlatformIO е малко по -различно от използването на Arudino IDE, така че в тази стъпка ще разгледаме само основите на получаване на пример, работещ на дъска.
Отваряне на пример:
- Щракнете върху бутона Начало в лентата с инструменти на PlatformIO (Както е показано на снимката)
- Щракнете върху бутона „Примери за проекти“
- Изберете примера „Arduino-blink“в секцията Espressif 32
Това ще отвори примерен мигащ проект. Оформлението на PlatformIO е доста различно в сравнение с проект на Arduino, така че нека преминем през основите.
Къде е кодът?
Кодът за вашия проект ще се съхранява в папката "src", за пример за мигане ще видите файл "blink.cpp", този файл е същият като вашия файл за скица (.ino) в проект на Arduino.
Как да конфигурирам дъската си?
Конфигурациите за вашия проект се съхраняват във файл „platformio.ini“във вашия проект. Това всъщност е едно от любимите ми неща за PlatformIO в сравнение с Arduino IDE, никога не ми се струваше, че настройките на дъската не са обвързани със скици.
Примерът.ini съдържа дефиниции за множество различни дъски, но за да опростим нещата, нека изтрием най -долните две дефиниции.
Къде да настроя своя COM порт?
PlatformIO всъщност автоматично ще се опита да намери правилния COM порт, който да използва, така че всъщност можете да се измъкнете, като не зададете нищо за това. Но ако имате множество COM портове, които ще имате, когато използвате дебъгъра, мисля, че има смисъл да зададете конкретното, от което се нуждаете. Можете да видите различните устройства, които имате, като щракнете върху раздела „Устройства“в раздела начална страница и можете да зададете кой от вашите ESP32 е в „platformio.ini“, като добавите конфигурация „upload_port“.
Как да кача кода си?
Щракнете върху бутона Качване (иконата е стрелка, сочеща надясно) и той трябва да компилира и качи кода. Сега трябва да имате мигащ светодиод на дъската.
Стъпка 6: Отстраняване на грешки: Потенциална бананова кожа



Това е нещо, което ме улови, когато готвех това и се надявам да бъде поправено, докато го опитате, но мислех, че е важно да напусна тук.
По време на създаването на това ръководство най -новата версия на PlatformIO е 4.3.0 и има грешка, свързана с възможността за отстраняване на грешки. За щастие можем да актуализираме до най -новата версия за разработка доста лесно, което решава проблема.
Проверете на началната страница версията на ядрото на PlatformIO, ако е „4.3.0“, изпълнете следните стъпки.
- В лентата с инструменти на PlatformIO щракнете върху иконата на терминала
- В типа терминал: pio upgrade --dev
- Рестартирайте VS кода и PlatfromIO трябва да се актуализират
Стъпка 7: Отстраняване на грешки: Конфигурация

Трябва да редактираме файла „PlatofrmIO.ini“, за да разрешим отстраняване на грешки, трябва само да добавим две неща към него.
debug_tool = esp-prog
Това задава инструмента за отстраняване на грешки, който използваме.
debug_init_break = настройка на tbreak
Това е трик, който научихме от видеото на Andress Spiess за отстраняване на грешки в ESP32. Той казва на грешката за отстраняване на грешки да спре в настройката на нашето приложение.
Стъпка 8: Отстраняване на грешки: Стартиране на отстраняване на грешки




Преди да влезем в него, ще направим малка промяна в скицата, която ще улесни демонстрацията какво можете да направите с отстраняването на грешки.
- Създайте нова променлива, "int delayTime = 1000;" извън всякакви методи, това ще го направи глобална променлива.
- Заменете номера в забавянето в цикъла с тази нова променлива: delay (delayTime);
Качете кода на дъската още веднъж, след това, за да започнете отстраняване на грешки, в лентата с инструменти щракнете върху "Изпълнение", след това "Стартиране на отстраняване на грешки"
Ще видите нещата, които се движат в прозореца на терминала, но дори когато това заявява, че е било успешно, ако щракнете върху „Debug Console“ще видите, че все още работи, ще отнеме няколко секунди, за да завърши.
Ако всичко вървеше според очакванията, ще видите списъка за отстраняване на грешки в началото на настройката.
Стъпка 9: Отстраняване на грешки: Основно използване




Нека да разгледаме някои от основите на това, което можете да направите с дебъгъра
Създаване на точки на прекъсване:
Точка на прекъсване е точка от вашия код, където искате дебъгерът да спре. За да създадете точка на прекъсване, щракнете вляво от номера на реда. Като демонстрация, добавете точка на прекъсване към първия ред в метода на цикъла.
Навигация на точката на прекъсване:
За да се придвижите между точката на прекъсване или да преминете към следващия ред код, можете да използвате инструментите, които ще се появят в горната част на екрана. Натиснете бутона "продължи" (прилича на бутон за възпроизвеждане), за да преместите точката на прекъсване, която току -що създадохме в цикъла.
Променливи часовници:
Променливите часовници ви позволяват да наблюдавате стойността на променливите, когато дебъгерът е спрян в точка на прекъсване. За да добавите нов часовник на променлива, можете да кликнете върху иконата +, след което просто въведете името на променливата. Като демонстрация въведете променливата, която добавихме в предишната стъпка "delayTime"
Преглед на променливи:
Можете също да видите всички променливи и техните стойности, които са налични в текущата ви точка на прекъсване. За да демонстрирате това, Ако погледнете в раздела "Global", трябва да намерите променливата "delayTime".
Редактиране на стойността на променливите:
Можете също да редактирате стойностите на променливите и това ще има незабавен ефект върху поведението на вашите кодове. За да демонстрирате това, кликнете върху променливата delayTime в секцията Varieble Viewer и променете стойността на "100". За да покажете тази работа, деактивирайте точката на прекъсване вътре в цикъла, като щракнете отново вляво от номера на реда. Натиснете бутона за продължаване на лентата за навигация на точката на прекъсване. Светодиодът на вашия ESP32 сега трябва да мига много по -бързо от преди.
Стъпка 10: Отстраняване на неизправности

По време на моето тестване установих, че понякога не мога да кача в ESP32, докато е свързан с ESP-прога, и не можах да разбера модел защо това се е случило, защото през повечето време мога да качвам без някакви проблеми. Открих, че мога просто да изключа ESP32 и ESP-Prog, да кача кода в ESP32 и след това да ги свържа отново и ще работи добре.
Стъпка 11: Заключение
Мисля, че това е наистина страхотен инструмент, който да добавите към инструментариума, за да разберете какво се случва във вашия проект.
Ще се радвам да чуя, ако намирате това за полезно !. Моля, уведомете ме в коментарите по -долу или се присъединете към мен и куп други производители на моя сървър Discord, където можем да обсъдим тази тема или всяка друга, свързана с производителя, която имате, хората са наистина полезни там, така че това е чудесно място за окачване навън.
Бих искал също да изразя огромна благодарност към моите спонсори от Github, които помагат да подкрепят това, което правя, наистина го оценявам. Ако не знаете, Github съвпадат със спонсорството за първата година, така че ако направите спонсорство, те ще го сравнят на 100% през следващите няколко месеца. Благодаря за четенето!
Препоръчано:
Как да използвате пиезо за производство на тон: Основи: 4 стъпки (със снимки)

Как да използваме пиезо за производство на тон: Основи: Здравейте на всички, В тази инструкция ще използваме пиезо зумер за генериране на тон. Какво е пиезо зумер? Пиезото е електронно устройство, което може да се използва както за създаване, така и за откриване на звук. Приложения: Можете да използвате една и съща схема за възпроизвеждане
Как да настроите дебъгер на ядрото на Windows в мрежата си: 6 стъпки

Как да настроите дебъгер на ядрото на Windows в мрежата си: Отстраняването на грешки е популярен инструмент, използван за достигане до основната причина за грешка. Грешка може да се прояви по много различни начини. може да причини срив на системата (син екран/BSOD), може да причини срив на приложение, може да накара системата ви да замръзне, за да назове фе
Как да използвате Mac терминал и как да използвате ключови функции: 4 стъпки

Как да използвате Mac терминал и как да използвате ключови функции: Ще ви покажем как да отворите MAC терминала. Също така ще ви покажем няколко функции в терминала, като ifconfig, промяна на директории, достъп до файлове и arp. Ifconfig ще ви позволи да проверите вашия IP адрес и вашата MAC реклама
Как да използвате ESP32 за управление на LED с Blynk чрез WiFi: 7 стъпки (със снимки)

Как да използвате ESP32 за управление на LED с Blynk чрез WiFi: Този урок ще използва платката за развитие на ESP32 за управление на LED с Blynk чрез WiFi. Blynk е платформа с приложения за iOS и Android за управление на Arduino, Raspberry Pi и други подобни по интернет. Това е цифрово табло, където можете да изградите
Изграждане на Inchworm ICD2 PIC програмист / дебъгер: 7 стъпки

Изграждане на Inchworm ICD2 PIC програмист / дебъгер: Тази инструкция е илюстрирана разходка през изграждането на ICD2 клонинг, наречен Inchworm. Това е пряк комплект, който ви позволява да изградите съвместим с MPLAB ICD2 програмист и дебъгер. Има много програмисти, но много малцина включват