一、功能简介
kt6368a蓝牙芯片也是基于 hid 开发,主要用于浏览当下火爆的抖音等小视频的上下翻页、左右菜单切换、暂停等操作。打开手机蓝牙进行连接,进入视频浏览界面操作对应按键即可。包含一个蓝牙的指示灯,表示是否连接 。同时支持adkey按键,这个按键就可以根据需求来进行裁剪。产品最终选用cr3032的电池,所以非常的在意功耗。
二、程序部分理解记录
在 系 统 进 行 初 始 化 的 过 程 中 , 根 据 以 下 信 息 进 行 app 注 册 。 执 行 的 大 致 流 程 为 :
register_application--->state_machine--->app_start()--->sys_key_event_enable();这条流程主要进行
设备的初始化设置以及一些功能使能。
register_application--->event_handler--->app_key_event_handler()--->app_key_deal_test();这 条流 程
在 event_handler 之下有多个 case,上述选择按键事件的处理流程进行代码流说明,主要展示按键事
件发生时,程序的处理流程。
(2) app 状态机
状态机有 create,start,pause,resume,stop,destory 状态,根据不同的状态执行对应的分支。
app 注册后进行初始运行,进入 app_sta_start 分支,开始 app 运行。
1. static int state_machine(struct application *app, enum app_state state, struct intent *it)
2. { switch (state) {
3. case app_sta_create:
4. break;
5. case app_sta_start:
6. if (!it) {
7. break; }
8. switch (it->action) {
9. case action_touchscreen:
10.
app_start();
进入 app_start()函数后进行对应的初始化,时钟初始化,模式选择,低功耗初始化,以及外部事件使
能。
1. static void app_start()
2. {
3. log_info(=======================================);
4. log_info(-----------------------------keypage------------------------);
5. log_info(=======================================);
6.
static int state_machine(struct application *app, enum app_state state, struct intent *it)
{ switch (state) {
case app_sta_create:
break;
5. case app_sta_start:
6. if (!it) {
7. break; }
8. switch (it->action) {
9. case action_touchscreen:
10.
app_start();
进入 app_start()函数后进行对应的初始化,时钟初始化,模式选择,低功耗初始化,以及外部事件使
能。
1. static void app_start()
2. {
3. log_info(=======================================);
4. log_info(-----------------------------keypage------------------------);
5. log_info(=======================================);
6.
主体的还是以事件的形式进行驱动,空闲时就睡眠,有按键或者蓝牙协议栈的事件,则自己唤醒然后做出相应的动作,如下是按键的动作处理:
当 app 注册运行后,有按键事件发生时,会进行对应的数据发送,由于是 hid 设备,所以数据的发
送形式从对应的 hid 设备的描述符产生。用户如需要对设备进行功能自定义,可以结合 hid 官方文
档对下述描述符进行修改。
暂停按键对应的 hid 设备发送数据包,通过下图的 hid_data_send_pt()进行数据传输。
1. log_info(point: %d,%d, point_cnt, point_len);
2. if (point_cnt) {
3. for (int cnt = 0; cnt < point_cnt; cnt++) {
4. hid_data_send_pt(1, key_data, point_len);
5. key_data += point_len;
6. key_delay_time();
7. }
8. }
由描述符可知,设备一共有 5 个输入实体 input,一共组成 7byte 的数据,所以对应的暂停按键
数据包由 7byte 的数据组成,前 2byte 表示识别是否有触摸输入,中间 2 个 2byte 分别表示 y 坐标和
x 坐标,最后 1byte 表示 contact count,不同的按键事件对应不同的数据包,数据通过 hid_data_send_dt
函数发送至设备。对应的按键事件通过事件处理机制和数据发送实现对应的功能。
三、实际开发记录--参数详解
1、由蓝牙芯片自己完成所有的事情,分两个按键,一个按键短按开机,短按关机 。第二个io口是外挂adkey
2、芯片的2脚led,7脚【usb-dm】开关机按键,8脚【usb-dp】外挂adkey 。空闲超过5分钟就自动关机
3、蓝牙名:kt6368a-keypage
3.1 测试环境--kt6368a的测试demo板
1、采用3.3v供电,而不选择用5v供电。直接进去测试模块的3.3v标号
2、去掉原本测试板上面的me6208a的ldo,因为他也会产生功耗
3.2 功耗记录 ---相对精度的电流测试仪器
3.3 实现的效果如下:
测试了抖音以及快手的相关app,实现上翻和下翻等等功能
VR技术有了颠覆传统观影方式的资本
Silicon Labs携手Yeelight推出新型智能LED灯泡
氧传感技术创新使检测时间节省了一半
如何直面5G领域公众最关注的七大问题
电路中三极管到底有什么不同?如何去分析电路中三极管的作用?
基于KT6368A蓝牙芯片开发智能抖音翻页翻页笔总结
余承东评华为首款台式机可实现生产效率最大化
气体检测仪能应用于哪些行业
干货分享 | TSMaster小功能之如何在图形中监控某一条DBC报文发送周期?
绝缘导线型号用途
新规划PCI核查工具的使用方法和应用事例
镜像抑制及其对所需信号的影响,镜像抑制基础知识
接地和接零装置的要求
克服集成互联汽车和智能交通的挑战
16GB内存+Windows HUAWEI MateBook 13锐龙版升级款限时抢购中
探究Overlay网络模型和Underlay网络模型
单声道调频发射器电路
乐鑫物联网芯片全球累计出货量已突破10 亿颗
TCL X10冰箱鲜纳生活百味 打造全空间新鲜养护
c语言之条件编译技巧与示例分析