gpio_set_level(18,!gpio_get_level(18)); } } } void Z_Init_IT_GPIO(void){ gpio_config_t init; init.intr_type = GPIO_INTR_POSEDGE; // 开启上升沿中断; init.mode = GPIO_MODE_INPUT; // 输入模式 init.pin_bit_mask = (1ULL << 10); // GPIO10 init.pull_down_en = GPIO_PULL...
void gpio_set_level(gpio_num_t gpio_num, uint32_t level); 1. 在使用该函数时,需要先通过 gpio_set_direction() 函数将指定GPIO设为输出模式。 2. gpio_get_level 该函数用于读取 GPIO 当前的电平状态,函数原型如下: AI检测代码解析 int gpio_get_level(gpio_num_t gpio_num); 1. 在使用该函数时...
//根据上述配置设置GPIO gpio_config(&io_conf); gpio_set_level(GPIO_NUM_3,0);设置GPIO状态函数: gpio_get_level(GPIO_NUM_9) 读取io状态。 快速指南见以下连接。 GPIO & RTC GPIO - ESP32-C3 - - ESP-IDF 编程指南 release-v5.3 文档 视频教程:https://www.bilibili.com/video/BV1vTCUYyETZ/?
vTaskDelay(50 / portTICK_PERIOD_MS); if (!gpio_get_level(KEY1)) { KEY1_STATUS++; } } if (!gpio_get_level(KEY2)) { vTaskDelay(50 / portTICK_PERIOD_MS); if (!gpio_get_level(KEY2)) { SEG_num = KEY2; } } if (!gpio_get_level(KEY3)) { vTaskDelay(50 / portTICK_PER...
一、查询GPIO的输入 1.使用函数:gpio_get_level 2.示例程序: #include<stdio.h>#include"freertos/FreeRTOS.h"#include"freertos/task.h"#include"driver/gpio.h"#include"sdkconfig.h"#define INPUT_GPIO 4voidapp_main(){gpio_config_tio_conf;io_conf.pin_bit_mask=1ULL<<INPUT_GPIO;io_conf.mode...
gpio_set_level(gpio_num_t gpio_num, uint32_t level)level:0 低电平1 高电平 5. 输入模式检测电平 gpio_get_level(gpio_num_t gpio_num)6. 配置单个引脚内部上、下拉电阻 gpio_set_pull_mode(gpio_num_t gpio_num)gpio_pullup_en(gpio_num_t gpio_num)gpio_pullup_dis(gpio_num_t gpio_num)...
static void gpio_task_example(void* arg) { uint32_t io_num; for(;;) { if(xQueueReceive(gpio_evt_queue, &io_num, portMAX_DELAY)) { printf("GPIO[%d] intr, val: %d\n", io_num, gpio_get_level(io_num)); } } } 具体的demo在已下载好的 esp-idf\examples\peripherals\gpio\gpio\...
} gpio_int_type_t; 中断枚举结构体有7种情况,禁用中断,上升沿触发,下降沿触发,边沿触发,低压触发,高压触发。 esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level);intgpio_get_level(gpio_num_t gpio_num); set_level和get_Level用来设置io的的高低电平和读取io的电平。
ESP_ERROR_CHECK(gpio_set_level(GPIO_OUTPUT_IO_1, 0)); printf("GPIO_OUTPUT_IO_0: %d\n", gpio_get_level(GPIO_OUTPUT_IO_0)) ; // 0 as expected printf("GPIO_OUTPUT_IO_1: %d\n", gpio_get_level(GPIO_OUTPUT_IO_1)) ; // 0 as expected ...
gpio_get_level(BLINK_GPIO)); vTaskDelay(xDelay); } 四、配置某个GPIO的低/高电平触发事件,并且打印出来; 4.1:下降沿触发中断: 下面的代码实现的效果的是:中断触发按键按下来,触发中断,执行回调函数; 注意①:中断触发按键连接的是GND和GPIO14,因为是下降沿触发,所以必须一边接地!!