第一:在官方列程中随便创建一个项目(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("================点灯开始啦================
");
int32_t led_static = gpio_reset_pin(LED_PIN_NUM); //将 gpio 重置为默认状态(选择 gpio 功能、启用上拉并禁用输入和输出),返回一个状态
gpio_set_direction(LED_PIN_NUM,GPIO_MODE_OUTPUT); //设置gpio状态,仅输出,仅输入,输出和输入
while (1)
{
gpio_set_level(LED_PIN_NUM, 0); //设置gpio为低电平
vTaskDelay(200); //延迟函数
printf("翻转灯的高低电平
");
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 //选择板子上led灯的gpio
#define GPIO_OUTPUT_PIN_SEL (1ULL<<LED_PIN_NUM) // 配置GPIO_OUT位寄存器
void app_main(void)
{
gpio_config_t led_config; //GPIO 通用配置。
led_config.pin_bit_mask = GPIO_OUTPUT_PIN_SEL;
led_config.mode = GPIO_MODE_OUTPUT; //设置GPIO为输出模式
led_config.pull_up_en = GPIO_PULLUP_DISABLE; //禁用GPIO上拉电阻 */
led_config.pull_down_en = GPIO_PULLUP_ENABLE; //启用 GPIO 下拉电阻 */
led_config.intr_type = GPIO_PIN_INTR_DISABLE; //禁止中断
if (gpio_config(&led_config) == ESP_OK) //初始化gpio状态并判断是否设置成功
{
while (1)
{
gpio_set_level(LED_PIN_NUM, 1); //设置高电平
vTaskDelay(200); //延迟函数
gpio_set_level(LED_PIN_NUM, 0); //设置低电平
vTaskDelay(200);
}
}else
{
printf("gpio初始化出错啦
");
}
}