![[ESP32]GPIO口控制](https://zouyingzheng.com/zb_users/theme/os_2019/static/images/article-default-cover.jpg)
[ESP32]GPIO口控制
需要的头文件
#include "driver/gpio.h"寄存器版本
#define GPIO_BLUE_LED 2 void Led_Task(void *pvParameter) { while(1) { gpio_set_level(GPIO_BLUE_LED, 0); vTaskDelay(1000 / portTICK_RATE_MS); gpio_set_level(GPIO_BLUE_LED, 1); vTaskDelay(1000 / portTICK_RATE_MS); } vTaskDelete(NULL); } //采用寄存器方式 void hw_gpio_init(void) { gpio_config_t io_conf; //禁用中断 io_conf.intr_type = GPIO_PIN_INTR_DISABLE; //设置为输出模式 io_conf.mode = GPIO_MODE_OUTPUT; //移位到gpio的寄存器bit io_conf.pin_bit_mask = (1<<GPIO_BLUE_LED); //下拉禁用 io_conf.pull_down_en = 0; //上拉使能 io_conf.pull_up_en = 1; //配置GPIO gpio_config(&io_conf); } void app_main() { nvs_flash_init(); hw_gpio_init(); xTaskCreate(&Led_Task, "LedBink", 2048, NULL, 5, NULL); }
函数版
gpio_pad_select_gpio(GPIO_NUM_2);//选择一个GPIO gpio_set_direction(GPIO_NUM_2, GPIO_MODE_OUTPUT);//把这个GPIO作为输出 gpio_set_level(GPIO_NUM_2, 0);//把这个GPIO输出低电平 gpio_set_level(GPIO_NUM_2, 1);//把这个GPIO输出高电平
留言评论
暂无留言