io_conf.pin_bit_mask = 1ULL<<GPIO_NUM_9,//关闭下拉io_conf.pull_down_en = 0,//打开上拉io_conf.pull_up_en = 1,}; //根据上述配置设置GPIOgpio_config(&io_conf); gpio_set_level(GPIO_NUM_3,0);设置GPIO状态函数: gpio_get_level(GPIO_NUM_9) 读取io状态。 快速指南见以下连接。
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_MODE_INPUT;io...
gpio_set_level(BLINK_GPIO, 0); //第一个参数是GPIO,第二个是0或1 1. 三、获取某个GPIO的电平,并且打印出来; 如果你要获取当前的电平状态,请把此配置io_conf.mode模式为GPIO_MODE_INPUT,表示为输入模式;见下面的源码可看到有多个输入输出模式,还有把此GPIO设置为不可用!可见esp32的API丰富啊! 下面的代码...
void gpio_set_level(gpio_num_t gpio_num, uint32_t level); 1. 在使用该函数时,需要先通过 gpio_set_direction() 函数将指定GPIO设为输出模式。 2. gpio_get_level 该函数用于读取 GPIO 当前的电平状态,函数原型如下: int gpio_get_level(gpio_num_t gpio_num); 1. 在使用该函数时,需要先通过 gpi...
set_level和get_Level用来设置io的的高低电平和读取io的电平。 gpio_install_isr_service(ESP_INTR_FLAG_LEVEL1); gpio_isr_handler_add(LED_PIN,gpio_isr_handler,(void*)LED_PIN); 当用到GPIO中断的时候,首先要设定GPIO中断的优先级,参数就是优先级从1-7.接着还需要添加指定IO的中断处理函数。
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)...
Int IO0_level = gpio_get_level( GPIO_INPUT_IO_0); /*返回值为读取的IO_0的高低电平*/ 中断加线程 : //change gpio intrrupt type for one pin gpio_set_intr_type(GPIO_INPUT_IO_0, GPIO_INTR_ANYEDGE); //改变一个pin的 中断类型
{ printf("GPIO[%d] intr, val: %d\n", io_num, gpio_get_level(io_num)); } } } void app_main() { gpio_config_t io_conf; io_conf.intr_type = GPIO_PIN_INTR_POSEDGE;//interrupt of rising edge io_conf.pin_bit_mask = GPIO_INPUT_PIN_SEL;//bit mask of the pins, use GPIO32...
ESP32可以通过GPIO口读取TTL电平信号。下面是一些读取TTL电平信号的基本步骤:1、选择一个GPIO口用于读取TTL信号,同时将该GPIO口设置为输入模式。例如,可以通过以下代码将GPIO13设置为输入模式。2、使用gpio_get_level函数读取GPIO口的电平信号。例如,可以通过以下代码读取GPIO13口的电平信号。3、对读取到...