×

ESP32------GPIO的使用

zxjy辉 zxjy辉 发表于2023-07-07 11:05:35 浏览346 评论0

抢沙发发表评论

eps32的引脚使用方法和stm32的引脚使用方法差不多

大致的流程:通过结构体来确定引脚的参数唯美日落意境自然景象.jpg


  1. 通过一个结构体来对引脚的参数进行进行初始化
    gpio_config_t 类型的结构体
    /// @brief 引脚初始化,GPIO:GPIO_NUM_19
    void GPIO_Config(){
        gpio_config_t my_gpio;
        my_gpio.intr_type = GPIO_INTR_NEGEDGE;                    //下降沿触发
        my_gpio.mode      = GPIO_MODE_INPUT_OUTPUT;               //设置引脚为输入输出模式,如果是检测外部电平,则需要选择带有输入的模式
        my_gpio.pin_bit_mask = ( 1ull << GPIO_NUM_19 );           //注意:引脚掩码是64位
        my_gpio.pull_up_en   = 1;                                 //使能上拉,注意:使用软件的上拉,其带负载能力非常的差,这个上拉和下拉是针对输出高电平时,如果外部没有上拉电阻,采用内部的上拉电阻,那么同样是输出3.3v,内部的供电电流小,外部上拉采用的是外部的3.3v,所以电流比较大,带负载能力比较强
        my_gpio.pull_down_en = 0;                                 //下拉,应该是没什么区别的
        gpio_config( &my_gpio );                                  
        gpio_set_level(19, 1);                                    //设置为低电平
    }
  2. 注意事项

    1. 上拉和下拉是针对有输出功能的引脚,esp32 gpio34~39是没有输出功能,只有输入功能,作为外部中断输入检测的时候,需要选择具有输入功能的引脚

    2. 需要注意的点就是在于:如果是只有输入功能,那么需要一个边沿触发的时候,就不能芯片内部拉高电平或则拉低电平,只能靠外部的电平变化才能实现边沿检测,但是,如果采用的是既带有输入功能有带有输出功能的引脚,那么,就可以通过内部的上拉使能,然后设置引脚的电平为一个固定的值(例如高电平或则是低电平),那么就可以不需要外部的一个电平变换,就可以实现边沿检测。

#好好学习!

群贤毕至

访客