В чем разница между Tools > Board settings в Arduino IDE? пример: ESP32-Dev против Huzzah32
У меня была недавняя проблема с памятью, когда я решил изменить настройку "Инструменты" > "Раздел". Однако этот параметр был недоступен в Arduino IDE для плат, которые я использовал (Huzzah32 и NodeMCU-32s). Я изменил настройку платы на модуль ESP32-Dev, и в разделе «Инструменты» появились дополнительные элементы меню. Мой проект теперь компилируется и работает нормально.
Однако мне никогда не приходило в голову установить для плат "неправильный" тип. Какова цель настройки платы конкретного поставщика, когда кажется, что более общая настройка работает нормально? Какие настройки следует использовать и при каких обстоятельствах?
Я предполагаю, что настройки плат конкретного поставщика больше касаются периферийного оборудования на платах (порты USB, светодиоды и т. д.), и чем больше вы их используете, тем больше вероятность того, что вам придется использовать конкретную плату. параметр. В моем случае, поскольку в моем проекте используются только Wi-Fi и Bluetooth, встроенные в сам чип ESP32, все в порядке, но если бы я использовал кучу GPIO и других вещей, мне пришлось бы использовать настоящий Huzzah32. Верно?
@Rob Sweet, 👍0
Обсуждение1 ответ
Лучший ответ:
Для плат 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
, идентифицирующий плату. Если вы хотите, чтобы один и тот же код выполнялся по-разному на разных платах (например, с использованием разных контактов на разных платах), вы можете использовать этот макрос, чтобы управлять потоком вашего кода.
- Как загрузить уже скомпилированный код, когда никаких изменений не производилось?
- ESP32 в Arduino IDE: определите тип платы в коде (макрос препроцессора)
- Что мне делать с StackOverflow при ошибке компиляции?
- Как заставить Arduino IDE использовать определенную версию GCC в Debian?
- Как иметь в проекте код, который не будет компилироваться для Arduino?
- Как делегировать компиляцию кода на удаленную машину?
- Условная компиляция в зависимости от sizeof(double)
- Беспричинное создание `Serial`, почему?
специфичные для платы ароматы избавляют от некоторых догадок при записи первого изображения и экономят клики при переключении, @dandavis