ESP-IDF提供了丰富的GPIO操作函数,
开发者可以在esp-idf-v5.1.2\components\driver\gpio路径下找到相关的gpio.c和gpio.h文件。
在gpio.h头文件中,你可以找到ESP32-S3的所有GPIO函数定义。
led.c
#include "led.h"
/**
* @brief 初始化LED
* @param 无
* @retval 无
*/
void led_init(void)
{
gpio_config_t gpio_init_struct = {0};
gpio_init_struct.intr_type = GPIO_INTR_DISABLE; /* 失能引脚中断 */
gpio_init_struct.mode = GPIO_MODE_INPUT_OUTPUT; /* 输入输出模式 */
gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE; /* 使能上拉 */
gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE; /* 失能下拉 */
gpio_init_struct.pin_bit_mask = 1ull << LED_GPIO_PIN; /* 设置的引脚的位掩码 */
gpio_config(&gpio_init_struct); /* 配置GPIO */
LED(1); /* 关闭LED */
}
led.h
#include "driver/gpio.h"
/* 引脚定义 */
#define LED_GPIO_PIN GPIO_NUM_1 /* LED连接的GPIO端口 */
/* 引脚的输出的电平状态 */
enum GPIO_OUTPUT_STATE
{
PIN_RESET,
PIN_SET
};
/* LED端口定义 */
#define LED(x) do { x ? gpio_set_level(LED_GPIO_PIN, PIN_SET) : gpio_set_level(LED_GPIO_PIN, PIN_RESET); } while(0) /* LED翻转 */
/* LED取反定义 */
#define LED_TOGGLE() do { gpio_set_level(LED_GPIO_PIN, !gpio_get_level(LED_GPIO_PIN)); } while(0) /* LED翻转 */
/* 函数声明*/
void led_init(void); /* 初始化LED */
通过这一部分,实现GPIO定义,实现基础操作
ESP-IDF提供了丰富的GPIO操作函数,
开发者可以在esp-idf-v5.1.2\components\driver\gpio路径下找到相关的gpio.c和gpio.h文件。
在gpio.h头文件中,你可以找到ESP32-S3的所有GPIO函数定义。
led.c
#include "led.h"
/**
* @brief 初始化LED
* @param 无
* @retval 无
*/
void led_init(void)
{
gpio_config_t gpio_init_struct = {0};
gpio_init_struct.intr_type = GPIO_INTR_DISABLE; /* 失能引脚中断 */
gpio_init_struct.mode = GPIO_MODE_INPUT_OUTPUT; /* 输入输出模式 */
gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE; /* 使能上拉 */
gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE; /* 失能下拉 */
gpio_init_struct.pin_bit_mask = 1ull << LED_GPIO_PIN; /* 设置的引脚的位掩码 */
gpio_config(&gpio_init_struct); /* 配置GPIO */
LED(1); /* 关闭LED */
}
led.h
#include "driver/gpio.h"
/* 引脚定义 */
#define LED_GPIO_PIN GPIO_NUM_1 /* LED连接的GPIO端口 */
/* 引脚的输出的电平状态 */
enum GPIO_OUTPUT_STATE
{
PIN_RESET,
PIN_SET
};
/* LED端口定义 */
#define LED(x) do { x ? gpio_set_level(LED_GPIO_PIN, PIN_SET) : gpio_set_level(LED_GPIO_PIN, PIN_RESET); } while(0) /* LED翻转 */
/* LED取反定义 */
#define LED_TOGGLE() do { gpio_set_level(LED_GPIO_PIN, !gpio_get_level(LED_GPIO_PIN)); } while(0) /* LED翻转 */
/* 函数声明*/
void led_init(void); /* 初始化LED */
通过这一部分,实现GPIO定义,实现基础操作
每一个童年的梦想都值得用青春去捍卫!