eps32的引脚使用方法和stm32的引脚使用方法差不多
大致的流程:通过结构体来确定引脚的参数
通过一个结构体来对引脚的参数进行进行初始化 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); //设置为低电平 }注意事项
上拉和下拉是针对有输出功能的引脚,esp32 gpio34~39是没有输出功能,只有输入功能,作为外部中断输入检测的时候,需要选择具有输入功能的引脚
需要注意的点就是在于:如果是只有输入功能,那么需要一个边沿触发的时候,就不能芯片内部拉高电平或则拉低电平,只能靠外部的电平变化才能实现边沿检测,但是,如果采用的是既带有输入功能有带有输出功能的引脚,那么,就可以通过内部的上拉使能,然后设置引脚的电平为一个固定的值(例如高电平或则是低电平),那么就可以不需要外部的一个电平变换,就可以实现边沿检测。
#好好学习!