0
点赞
收藏
分享

微信扫一扫

ESP32 GPIO函数相关介绍

暮晨夜雪 2022-02-26 阅读 92

ESP32 GPIO函数库介绍

函数名称参数类型返回值主要功能注:
gpio_configgpio_config_t*返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误初始化GPIO
gpio_reset_pingpio_num_t总是返回ESP_OK将GPIO设置为默认状态,使能上拉同时关闭输入输出功能。常用于关闭ESP32与外设的连接
gpio_set_intr_typegpio_num_t 和gpio_int_type_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误设置GPIO中断触发类型,例如上升沿或下降沿等触发。
gpio_intr_enablegpio_num_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误使能GPIO中断功能
gpio_intr_disablegpio_num_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误关闭GPIO中断功能
gpio_set_levelgpio_num_t和uint32_t level。0为低电平,1为高电平。返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误设置GPIO的输出电平的高低
gpio_get_levelgpio_num_tint获得GPIO当前电平高低状态,返回值为0或1.当引脚未被初始化为输入或输出状态时总是返回0.
gpio_set_directiongpio_num_t和gpio_mode_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误设置GPIO的数据流通方向,例如仅输入、仅输出、输入和输出。
gpio_set_pull_modegpio_num_t和gpio_pull_mode_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误设置GPIO为上拉或下拉模式,仅适用于同时具有输入和输出功能的引脚,仅仅具有输入功能的引脚34-39不可以使用本函数进行配置。
gpio_wakeup_enablegpio_num_t和gpio_int_type_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误使能GPIO唤醒函数,仅支持高电平或低电平唤醒。
gpio_wakeup_disablegpio_num_t和gpio_int_type_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误关闭GPIO唤醒功能。
gpio_isr_registerfn函数指针,arg参数,intr_alloc_flags,gpio_isr_handle_t *handle中断函数执行后的返回地址。返回ESP_OK,ESP_ERR_INVALID_ARG参数错误,ESP_ERR_NOT_FOUND没有中断发现错误统一为所有GPIO注册一个中断服务函数,任何GPIO中断都会调用此函数。
gpio_pullup_engpio_num_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误使能GPIO上拉功能
gpio_pullup_disgpio_num_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误关闭GPIO上拉功能
gpio_pulldown_engpio_num_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误开启GPIO下拉功能
gpio_pulldown_disgpio_num_t返回ESP_OK或者ESP_ERR_INVALID_ARG参数错误关闭GPIO下拉功能
gpio_install_isr_serviceintr_alloc_flags用于给中断赋予权限返回ESP_OK,ESP_ERR_INVALID_ARG参数错误等开启中断服务程序,与gpio_isr_handler_add()配合使用,与gpio_isr_register()不兼容。
gpio_uninstall_isr_servicevoidvoid卸载ISR服务,释放相关资源。
gpio_isr_handler_addgpio_num_t,gpio_isr_t isr_handler中断服务函数,void *args函数的参数ESP_ERR_INVALID_STATE中断未被初始化,ESP_OK或者ESP_ERR_INVALID_ARG参数错误给相应GPIO添加对应的中断服务程序,
gpio_isr_handler_removegpio_num_tESP_ERR_INVALID_STATE中断未被初始化,ESP_OK或者ESP_ERR_INVALID_ARG参数错误为单个GPIO关闭中断服务程序
gpio_set_drive_capabilitygpio_num_t和gpio_drive_cap_t返回ESP_OK,ESP_ERR_INVALID_ARG参数错误为GPIO配置驱动能力,仅支持配置为输出模式的引脚。
gpio_get_drive_capabilitygpio_num_t,gpio_drive_cap_t *指针返回ESP_OK,ESP_ERR_INVALID_ARG参数错误获得单个引脚的驱动能力信息
gpio_hold_engpio_num_t返回ESP_OK,ESP_ERR_INVALID_ARG参数错误引脚状态保持使能,适用于输入和输出,使能后引脚状态强制锁定,高低电平状态不受外界影响。深度睡眠模式下无法使用此功能。
gpio_hold_disgpio_num_t返回ESP_OK,ESP_ERR_INVALID_ARG参数错误关闭引脚状态锁定功能,
gpio_deep_sleep_hold_envoidvoid使能深度睡眠状态下依然可以使用引脚状态锁定功能,gpio_hold_dis()函数可以关闭此功能。
gpio_deep_sleep_hold_disvoidvoid关闭深度睡眠状态下依然可以使用引脚状态锁定的功能
gpio_iomux_ingpio_num和signal_idx信号ID,可在soc/gpio_sig_map.h中查询void通过IO交换矩阵使引脚与内部外设相连接,仅可将引脚设置为外设的输入接口
gpio_iomux_outgpio_num,int func(外设功能号可在soc/io_mux_reg.h中查看)和bool oen_inv当需要反转输出是设置为Truevoid通过交换矩阵将GPIO引脚设置为外设的输出接口
gpio_force_hold_allvoidesp_err_t强制保持引脚数字状态
gpio_force_unhold_allvoidesp_err_t解除引脚保持状态
gpio_sleep_sel_engpio_num_tESP_OK启用SLP_SEL在lightsleep中自动更改GPIO状态。
gpio_sleep_sel_disgpio_num_tESP_OK关闭SLP_SEL在lightsleep中自动更改GPIO状态。
gpio_sleep_set_directiongpio_num_t和gpio_mode_t返回ESP_OK,ESP_ERR_INVALID_ARG参数错误在睡眠状态设置引脚的数据输送方向
gpio_sleep_set_pull_modegpio_num_t和gpio_pull_mode_t返回ESP_OK,ESP_ERR_INVALID_ARG参数错误在睡眠状态下设置引脚为上拉或下拉
gpio_deep_sleep_wakeup_enablegpio_num_t和gpio_int_type_t中断类型返回ESP_OK,ESP_ERR_INVALID_ARG参数错误使能GPIO深度睡眠状态下唤醒函数,用户无法在APP中使用,由SDK调用。
gpio_deep_sleep_wakeup_disablegpio_num_t返回ESP_OK,ESP_ERR_INVALID_ARG参数错误关闭深度睡眠状态下的唤醒函数
举报

相关推荐

0 条评论