zl程序教程

您现在的位置是:首页 >  .Net

当前栏目

ESP32 + IDF + LED

2023-02-18 16:30:02 时间

一、开发板

ESP32-S3-DevKitC-1

管脚布局

由于这个程序控制比较简单,就不赘述了,直接看程序。

二、程序

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/ledc.h"


#define LED_PIN    6
#define LED_PIN_SEL  (1ULL<<LED_PIN)

/**
 * @brief 配置引脚功能
 */
void bsp_led_init(void)
{
    gpio_config_t io_conf = {};                     // 初始化结构体
    io_conf.intr_type = GPIO_INTR_DISABLE;          // 禁用中断
    io_conf.mode = GPIO_MODE_OUTPUT;                // 设置为输出模式
    io_conf.pin_bit_mask = LED_PIN_SEL;             // 要设置的引脚的位掩码
    io_conf.pull_down_en = 0;                       // 禁用下拉模式
    io_conf.pull_up_en = 0;                         // 禁用下拉模式
    gpio_config(&io_conf);                          // 配置GPIO结构体参数
}

/**
 * @brief ESP32 入口函数
 */
void app_main(void)
{
    uint32_t count = 0;
    bsp_led_init();
    while(1)
    {
        if(count % 2 == 0)
        {
            gpio_set_level(LED_PIN, 0);
        }  
        else
        {
            gpio_set_level(LED_PIN, 1);
        }

        count++;
        printf("count: %d\n", count);
        vTaskDelay(20000 / portTICK_PERIOD_MS );
    }
}

参考文献

ESP-IDF 编程指南:https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32s3/api-reference/peripherals/gpio.html?highlight=gpio_set_level#_CPPv414gpio_set_level10gpio_num_t8uint32_t