找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

QCC300x button代码解析

2020-5-19 08:51| 发布者: csdn| 查看: 1580| 评论: 1|来自: CSDN

摘要: 准备工作: 1.在InitEarlyUserFeatures()函数下会调用buttonManagerInit(),进行button管理初始化 (1)BUTTO

准备工作:

1.在InitEarlyUserFeatures()函数下会调用buttonManagerInit(),进行button管理初始化

在这里插入图片描述

(1)BUTTON_GDATA这个全局变量非常重要,这里不展开说这个结构体,因为后面就会使用到,在那说明更容易理解,但名字要记住喔!
在这里插入图片描述

buttonManagerInit()函数前面几句就是开辟了结构体空间,并赋予了theSink.task

(2)ButtonsInit()函数
主要把BUTTON_GDATA与PIO task和charger task进行连接

在这里插入图片描述

(3)bmInitButtonConfig函数
这个函数有4步操作
在这里插入图片描述

第一步获取硬件接口转换列表,保存到BUTTON_GDATA下的button_translation_type_t结构体参数中,看到下面结构体的定义就很容易与ADK configuration tool的Translation Table关联起来了
在这里插入图片描述

第二步设置按键短按长按等时间配置,若没有设置防抖时间会设置默认

在这里插入图片描述

第三步设置button event
上一篇我们说到ADK configuration tool可以配置总共66个event,这 66个event是分三个保存,每个22个event
在这里插入图片描述

bmInitInputCheckMasks函数遍历66个event

上面都配置好后,就是在ButtonsMessageHandler()函数监听MESSAGE_PIO_CHANGED和MESSAGE_CHARGER_CHANGED,如果收到了PIO改变就会调用ButtonsCheckDetection()–>ButtonsLevelDetect()等函数来判断哪个按键按下,然后把event发到system去。


来源:https://blog.csdn.net/weixin_43177813/article/details/82826426
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
1

路过

雷人

握手
1

鲜花

鸡蛋

刚表态过的朋友 (2 人)

发表评论

最新评论

引用 Dark_moon 2020-10-1 09:47
楼主辛苦了,感谢分享。

查看全部评论(1)

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-5-6 03:02 , Processed in 0.351331 second(s), 32 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部