第一:在官方列程中随便创建一个项目(hello列程)
第二:删除main文件中的代码,开始写第一种点灯程序
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "led_strip.h"
#include "sdkconfig.h"
#define LED_PIN_NUM GPIO_NUM_12
void app_main(void)
{
printf("================点灯开始啦================\n");
int32_t led_static = gpio_reset_pin(LED_PIN_NUM);
gpio_set_direction(LED_PIN_NUM,GPIO_MODE_OUTPUT);
while (1)
{
gpio_set_level(LED_PIN_NUM, 0);
vTaskDelay(200);
printf("翻转灯的高低电平\n");
gpio_set_level(LED_PIN_NUM, 1);设置gpio为高电平
vTaskDelay(200);
}
}
第二种结构体方式
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "led_strip.h"
#include "sdkconfig.h"
#define LED_PIN_NUM GPIO_NUM_12
#define GPIO_OUTPUT_PIN_SEL (1ULL<<LED_PIN_NUM)
void app_main(void)
{
gpio_config_t led_config;
led_config.pin_bit_mask = GPIO_OUTPUT_PIN_SEL;
led_config.mode = GPIO_MODE_OUTPUT;
led_config.pull_up_en = GPIO_PULLUP_DISABLE;
led_config.pull_down_en = GPIO_PULLUP_ENABLE;
led_config.intr_type = GPIO_PIN_INTR_DISABLE;
if (gpio_config(&led_config) == ESP_OK)
{
while (1)
{
gpio_set_level(LED_PIN_NUM, 1);
vTaskDelay(200);
gpio_set_level(LED_PIN_NUM, 0);
vTaskDelay(200);
}
}else
{
printf("gpio初始化出错啦\n");
}
}