esp32的button组件,定义扩展io芯片按键
1,用的esp官方的**espressif/button** 版本用的v3.0.0

项目需求扩展io上的七个按键
先调用函数button_handle_t iot_button_create(const button_config_t *config)创建按键,参数是下图的结构体,

该库支持创建的四种类型,gpio按键、adc按键、键盘举证、自定义按键,我们的按键在扩展io上,选自定义按键,第一个成员type填BUTTON_TYPE_CUSTOM,第二、三个成员有默认值,可以不填。然后union里选button_custom_config_t,下图是这个结构体成员

第一个成员active_level是按下后的电平。然后是初始化、获取值、释放三个回调函数。最后一个priv是三个回调函数的参数。
介绍完了,我们定义下button_config_t 这个结构体
我这里只赋值了type,custom_button_config里的priv,button_custom_get_key_value。

priv赋的按键所在的扩展io的脚位地址expander_key_4。button_custom_get_key_value赋的bsp_button_key_value函数如下

参数parm是前面给priv赋值的脚位地址,该函数就是return这个脚位的电平,
button_config_t 里的其他成员没赋,都用的默认值。custom_button_config里的button_custom_init和button_custom_deinit是i2c扩展io的初始化和释放,我在程序的开头结尾用了,也没在这里赋值。
因为我写的是调试中遇到的问题,所以都掐头去尾的,如果各位在调类似的应用,并且文章没帮到你,欢迎叨扰13171016459(vx同号)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)