ESP-12 + FTDi + платформа

У меня есть 2 вопроса.

  1. Почему мы должны помещать наши функции перед циклом void и установкой void в VScode+platformio?
  2. Сегодня я переключился с arduino IDE на VScode+platformio, когда я загружаю скетч с platformio в свой esp-12, он не работает. (Работает с Arduino IDE)

У меня есть это предупреждение: src\main.cpp:46:24: предупреждение: большое целое число неявно усечено до беззнакового типа [-Woverflow] константный байт menuColor = 0XF206;

[EDIT]Проблема возникает из-за этих строк:

attachInterrupt(digitalPinToInterrupt(enA), enAin, RISING);
attachInterrupt(digitalPinToInterrupt(enB), enBin, RISING);
attachInterrupt(digitalPinToInterrupt(enBtn), enBtnIn, FALLING);


, 👍0

Обсуждение

1) прочитайте [Функции в C++](Для вопроса 1 прочитайте [Функция в C++](https://www.studytonight.com/cpp/functions-in-cpp.php) для лучшего понимания объявления функции. Для вопроса 2 , 0xF206 имеет длину 16 бит или 2 байта, поэтому вы должны объявить свою переменную как use const unsigned int menuColor = 0xF206; и прочитать больше [здесь](https://www.studytonight.com/cpp/datatypes -и-модификаторы-в-cpp.php)., @hcheung

«когда я загружаю скетч»... это должно говорить «когда я компилирую скетч»... загрузка происходит после того, как ваш скетч успешно скомпилирован…. в вашем случае загрузка в ESP-12 никогда бывает, @jsotola


1 ответ


1

Почему мы должны помещать наши функции перед циклом void и установкой void в VScode+platformio?

Потому что так работает C. Arduino IDE скрывает это от вас, добавляя прототипы функций в начало вашего кода.

Сегодня я переключился с arduino IDE на VScode+platformio, когда я загружаю скетч с platformio в свой esp-12, он не работает. (Работает с Arduino IDE)

const byte menuColor = 0XF206;

Это никогда не сработает. Значение 0x06 будет присвоено menuColor, так как байт состоит всего из 8 бит. Вам нужно научиться использовать типы данных, подходящие для значений, которые вы пытаетесь в них сохранить.

,

Спасибо, вы поняли мою ошибку с menuColor. Теперь я знаю, в чем проблема. ` #include <Arduino.h> const int enBtn = 3; недействительным en () { цифровая запись (2,1); задержка(500); цифровая запись (2,0); задержка(500); } недействительная установка () { pinMode(2, ВЫХОД); pinMode(enBtn, INPUT); attachInterrupt (digitalPinToInterrupt (enBtn), en, FALLING); //Не работает в платформере } недействительный цикл () { // поместите сюда ваш основной код для многократного запуска: }, @2CoB9