В чем разница между Tools > Board settings в Arduino IDE? пример: ESP32-Dev против Huzzah32

У меня была недавняя проблема с памятью, когда я решил изменить настройку "Инструменты" > "Раздел". Однако этот параметр был недоступен в Arduino IDE для плат, которые я использовал (Huzzah32 и NodeMCU-32s). Я изменил настройку платы на модуль ESP32-Dev, и в разделе «Инструменты» появились дополнительные элементы меню. Мой проект теперь компилируется и работает нормально.

Однако мне никогда не приходило в голову установить для плат "неправильный" тип. Какова цель настройки платы конкретного поставщика, когда кажется, что более общая настройка работает нормально? Какие настройки следует использовать и при каких обстоятельствах?

Я предполагаю, что настройки плат конкретного поставщика больше касаются периферийного оборудования на платах (порты USB, светодиоды и т. д.), и чем больше вы их используете, тем больше вероятность того, что вам придется использовать конкретную плату. параметр. В моем случае, поскольку в моем проекте используются только Wi-Fi и Bluetooth, встроенные в сам чип ESP32, все в порядке, но если бы я использовал кучу GPIO и других вещей, мне пришлось бы использовать настоящий Huzzah32. Верно?

, 👍0

Обсуждение

специфичные для платы ароматы избавляют от некоторых догадок при записи первого изображения и экономят клики при переключении, @dandavis


1 ответ


Лучший ответ:

3

Для плат ESP32 различия очень незначительны. В общем, ESP32 — это ESP32. Единственные изменения касаются сопоставления имени и вывода и способа загрузки кода.

Есть несколько разных модулей ESP32, но в целом все платы используют один и тот же (самый дешевый) модуль.

Если вы посмотрите в файле pins_arduino.h вариант, вы увидите, что почти все в формате:

static const uint8_t SDA = 21;
static const uint8_t SCL = 22;

Просто сопоставление имен с контактами. Обратите внимание, что некоторые из них являются особыми, например SDA и SCL выше, которые используются по умолчанию для библиотеки Wire.

Самые большие различия заключаются в файле boards.txt для платы. Здесь будут определены любые различия в модуле.

В целом, все «конкретные» платы представляют собой просто «модуль ESP32-Dev» с удаленными некоторыми параметрами и присвоением ему нового имени. Таким образом, вы обычно можете использовать модуль ESP32-Dev для любой платы, если вы выбираете правильный режим для таких вещей, как флэш-память.

Однако большое преимущество использования правильной платы заключается в том, что предоставляется макрос #define, идентифицирующий плату. Если вы хотите, чтобы один и тот же код выполнялся по-разному на разных платах (например, с использованием разных контактов на разных платах), вы можете использовать этот макрос, чтобы управлять потоком вашего кода.

,