谷动谷力

 找回密码
 立即注册
查看: 393|回复: 0
打印 上一主题 下一主题
收起左侧

中科蓝讯 SDK 开发 PWRKEY 功能

[复制链接]
跳转到指定楼层
楼主
发表于 2024-9-11 23:56:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
中科蓝讯 SDK 开发 PWRKEY 功能

    在中科蓝讯 SDK 开发的过程中,我们经常需要进行按键功能的开发,《中科蓝讯 SDK 开发——SDK按键功能简析》博文已经将按键的原理讲得很清楚,今天将从应用的角度来介绍 PWRKEY 按键功能。
1、PWRKEY 原理图
   
    PWRKEY 串联不同阻值的电阻(在 2 中介绍如何选取具体阻值),当按键按下 PWRKEY 将采集到不同的值,以此判断是哪一个按键按下。若需要 PWRKEY 实现开关机功能,则不需要串联电阻或串联 0R 电阻。
2、PWRKEY 可以挂载的按键数量和串联电阻的阻值选取

   
    据 SDK 中 PWRKEY 的数组 pwrkey_table[6] 可知,PWRKEY 最多可以挂载 5 个按键,串联电阻的阻值如图中注释,分别为 0Ω、1.5k、3.9k、15k、33k。
这里将产生一个问题,1 中原理图中 PWRKEY 串联电阻的阻值是否不正确?我们可以先了解该数组的含义和结合函数 static u8 get_pwrkey(void) 即可得出该问题的答案。
    以元素 {0x0A, KEY_PLAY_PWR_USER_DEF} 为例,0x0A 是 PWRKEY 通过 ADC 采集电压之后转化所得的值,KEY_PLAY_PWR_USER_DEF 是单击 1 中原理图 s2 时上传到函数 static u8
get_pwrkey(void) 中的值(可自定义参考 4),由下图:

   
    可知,0x0A 只是一个范围的临界值,当 PWRKEY 采集到的值小于等于 0x0A 时,上传到 static u8 get_pwrkey(void) 中的值就是 KEY_PLAY_PWR_USER_DEF,因此 1 中串联电阻的阻值可以根据 SDK
中推荐的阻值有所偏差。

3、PWRKEY 按键处理

   
    KEY_PLAY_PWR_USER_DEF 上传到 static u8 get_pwrkey(void) 中处理,还不能最终被上传到 void func_bt_message(u16 msg) 等函数中作为按键消息。例如,若想单击 1 中 s2 后在 void func_bt_message(u16 msg) 函数中产生一个 case,则需要将 KEY_PLAY_PWR_USER_DEF 或上 KEY_SHORT_UP得到可以上传到 void func_bt_message(u16 msg) 函数中的宏 KU_PLAY_PWR_USER_DEF,SDK 把 KU_PLAY_PWR_USER_DEF 识别为单击操作。双击或三击操作同理。
    KEY_SHORT、KEY_SHORT_UP、KEY_LONG_UP 、KEY_HOLD 等这些宏都分别对应了不同的的按键操作,大家可自行在相应的按键消息下打印信息探索。
4、添加自定义按键宏
    在bsp_key.h 文件中,有说明:普通按键定义,可以支持短按,长按,双击等;范围是 0 ~ 0xdf。若要自定义按键,这个按键值只要是 0 ~ 0xdf 范围内且未被使用的即可。如下便定义好按键单击宏:



   
    接着需要把 KEY_DIY 放到 pwrkey_table[6] 需要自定义按键的数组元素中即可:

   
    最后把 KU_DIY 放到消息处理函数中即可,如下放到 void func_bt_message(u16 msg) 函数中:

   
    单击 1 中 的 s3 后可在 Downloader 中观察打印情况,便可以确定自定义按键是否成功。
5、setting 工具 PWRKEY 按键定制
    首先要开启 PWRKEY:

   
    注意,只要使用到 PWRKEY 这里都要是打开状态。

   
    注意,1 中的 s2、s3、s4 分别对应按键 1、按键 4、按键 5,这是由它们串联的电阻决定的,并且setting 工具中定制按键功能之后,SDK 中pwrkey_table[6] 数组定义的按键功能将失效。
    PWRKEY 按键功能的内容就介绍到这里,ADKEY 的功能也是相似的,可以相互借鉴参考,有错误欢迎大家批评指正。如果大家还有什么其他的问题或者功能想要询问,亦可以在评论区中提出,可以共同探讨,一起进步。

参考文档:
1、中科蓝讯蓝皮书
2、BT892X DataSheet.pdf




+15

最近谁赞过

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-9-30 08:40 , Processed in 0.152159 second(s), 45 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表