# LED的gpio配置
## gpio的头文件
```
#include "driver/gpio.h"
```
## LED.h
### 定义led引脚号
```
#define GPIO_LED GPIO_NUM_引脚号
```
### 声明led函数
```
void LED_Init(void);
```
## LED.c
### 主函数结构体
```
typedef struct
{
uint64_t pin_bit_mask;
gpio_mode_t mode;
gpio_pullup_t pull_up_en;
gpio_pulldown_t pull_down_en;
gpio_int_type_t intr_type;
} gpio_config_t
```
## 参数包括:
### 引脚映射
```
gpio_config.pin_bit_mask=(1ULL<<GPIO号);
```
### 引脚模式
```
gpio_config.mode=GPIO_MODE_OUTPUT(开漏输出);
```
### 上拉使能
```
gpio_config.pull_up_en=0/1;(0不使能,1使能)
```
### 下拉使能
```
LED_config.pull_down_en=0/1;(0不使能,1使能)
```
### 中断类型
```
gpio_int_type_tintr_type
GPIO_INTR_DISABLE = 0,//gpio中断禁止
GPIO_INTR_POSEDGE = 1, //上升沿触发中断
GPIO_INTR_NEGEDGE = 2,//下降沿触发中断
GPIO_INTR_ANYEDGE = 3,//双沿触发中断
GPIO_INTR_LOW_LEVEL = 4,//低电平
GPIO_INTR_HIGH_LEVEL = 5,//高电平
GPIO_INTR_MAX,
```
### LED闪烁函数
#### 头文件
```
#include "driver/gpio.h"
#include "LED.h"
```
#### 函数内容
```
void app_main(void)
{
LED_Init();//led初始化
while(1)
{
gpio_set_level(GPIO_LED,0);//gpio电平设置
vTaskDelay(500/portTICK_RATE_MS);//延时函数,计算延时500ms的频率
gpio_set_level(GPIO_LED,1);
vTaskDelay(500/portTICK_RATE_MS);
}
```