硬件版图
IO口资源
备注:
• Strapping 管脚:GPIO0、GPIO2、GPIO5、GPIO12 (MTDI) 和GPIO15 (MTDO) 是Strapping 管脚。更多信息请参考ESP32 技术规格书。
• SPI0/1:GPIO6-11 和GPIO16-17 通常连接到模组内集成的SPI flash 和PSRAM,因此不能用于其他用途。
• JTAG:GPIO12-15 通常用于在线调试。
• GPI:GPIO34-39 只能设置为输入模式,不具备软件使能的上拉或下拉功能。
• TXD & RXD 通常用于烧录和调试。
• ADC2:使用Wi-Fi 时不能使用ADC2 管脚。因此,如果您在使用Wi-Fi 时无法从ADC2 GPIO 获取值,可以考虑使用ADC1 GPIO 来解决该问题。更多详情请参考ADC 连续转换模式下的硬件限制
以及ADC 单次转换模式下的硬件限制。
• 使用ADC 或睡眠模式下使用Wi-Fi 和蓝牙时,请不要使用GPIO36 和GPIO39 的中断
IO口引脚模式
配置IO口使用结构体传参的方式配置
配置IO口的结构体
struct gpio_config_t
成员
uint64_t pin_bit_mask
GPIO pin: set with bit mask, each bit maps to a GPIO
gpio_mode_t mode
GPIO mode: set input/output mode
gpio_pullup_t pull_up_en
GPIO pull-up
gpio_pulldown_t pull_down_en
GPIO pull-down
gpio_int_type_t intr_type
GPIO interrupt type
头文件
#include "driver/gpio.h"
常用函数
将配置好的structure传入此函数配置IO口状态
配置引脚电平
配置IO结构体进行点灯操作
#include "driver/gpio.h"
void initGPIO(){
gpio_config_t IO_Config;
init.intr_type=GPIO_INTR_DISABLE; //失能中断;
init.mode=GPIO_MODE_OUTPUT; //输出模式
init.pin_bit_mask=(1ULL<<X); //GPIOx
init.pull_down_en=GPIO_PULLDOWN_DISABLE; //失能下拉模式
init.pull_up_en=GPIO_PULLUP_ENABLE; //使能上拉模式
gpio_config(&IO_Config);
}