Я перезагрузил плату ESP32-S3 и загрузил простой мигающий код, но ничего не происходит.
#define LED_BUILTIN 48
void setup() {
// put your setup code here, to run once:
pinMode(LED_BUILTIN,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED_BUILTIN,HIGH);
delay(1000);
digitalWrite(LED_BUILTIN,LOW);
delay(1000);
}
Я проверил с помощью Serial Monitor, и он точно напечатал значение, поэтому я просто удалил #define LED_BUILTIN 48
, и это сработало.
Вот окончательный рабочий код.
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000);
Serial.println("LED Test");// wait for a second
}
Платформа ESP32 Arduino для некоторых плат ESP32 в pins_arduino.h
имеет определение LED_BUILTIN
. Например, для «Модуля разработки ESP32S3» это:
#define PIN_NEOPIXEL 48
static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL;
#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN
#define RGB_BUILTIN LED_BUILTIN
#define RGB_BRIGHTNESS 64
LED_BUILTIN
здесь имеет странное значение SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL
. Это делается для того, чтобы отличать нормальное использование контакта ввода-вывода от использования встроенного светодиода RGB. В digitalWrite
, если контакт равен RGB_BUILTIN
, они вызывают neopixelWrite
вместо gpio_set_level
, который выполняется для всех обычных контактов ввода-вывода, включая 48.
Затем функция neopixelWrite
использует протокол Neopixel для связи со встроенным светодиодом RGB.
Поэтому не переопределяйте LED_BUILTIN
, а используйте тот, который уже определен в pins_arduino.h
.
На плате ESP32-S3 светодиод подключен к порту RGBIO 48, поэтому я его и использовал.