// LED引脚测试程序 #include "driver/gpio.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" #define TAG "LED_TEST" // 测试所有可能的LED引脚 gpio_num_t test_pins[] = { GPIO_NUM_35, // LED1候选 GPIO_NUM_34, // LED2候选 GPIO_NUM_33, // LED3候选 GPIO_NUM_32, // LED_GREEN候选 GPIO_NUM_31, // LED4候选 GPIO_NUM_42, // 另一个候选 GPIO_NUM_41, // 另一个候选 GPIO_NUM_40, // 另一个候选 GPIO_NUM_38 // 另一个候选 }; const char* pin_names[] = { "GPIO35(LED1)", "GPIO34(LED2)", "GPIO33(LED3)", "GPIO32(LED_GREEN)", "GPIO31(LED4)", "GPIO42", "GPIO41", "GPIO40", "GPIO38" }; void led_test_task(void* param) { // 初始化所有测试引脚 for (int i = 0; i < 9; i++) { gpio_config_t io_conf = {}; io_conf.intr_type = GPIO_INTR_DISABLE; io_conf.mode = GPIO_MODE_OUTPUT; io_conf.pin_bit_mask = (1ULL << test_pins[i]); io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE; io_conf.pull_up_en = GPIO_PULLUP_DISABLE; gpio_config(&io_conf); gpio_set_level(test_pins[i], 0); // 初始关闭 } ESP_LOGI(TAG, "开始LED引脚测试..."); while (true) { // 依次点亮每个引脚,持续2秒 for (int i = 0; i < 9; i++) { ESP_LOGI(TAG, "点亮 %s", pin_names[i]); gpio_set_level(test_pins[i], 1); vTaskDelay(pdMS_TO_TICKS(2000)); // 2秒 gpio_set_level(test_pins[i], 0); vTaskDelay(pdMS_TO_TICKS(500)); // 0.5秒间隔 } ESP_LOGI(TAG, "测试循环完成,等待5秒后重复..."); vTaskDelay(pdMS_TO_TICKS(5000)); } } extern "C" void app_main() { ESP_LOGI(TAG, "LED引脚测试程序启动"); xTaskCreate(led_test_task, "led_test", 4096, NULL, 5, NULL); }