尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

通过同时双击左右耳恢复出厂设置

通过同时双击左右耳恢复出厂设置
📅 发布时间:2026/7/16 21:11:40

通过同时双击左右耳恢复出厂设置,单个耳机双击的时候响应按键处理,原理就是:通过按键传递消息,在多长的时间内满足条件就执行恢复出厂设置,不满足就响应按键处理。具体实现如下:

首先就是创建变量:
bsp_sys.h下sys_cb1_t结构体中:

u8 double_mun_flag;//双击之后的清除标志u8 fuer_doubleflag;//副耳双击的标志位u8 zhuer_doubleflag;//主耳双击的标志位

创建消息定义:
bsp_key.h中:

#defineEVT_DOUBLE_MSG_EN0x7d7//清除配对信息#defineEVT_DOUBLE_SIRI_EN0x7d6//双击超时的时候响应按键处理

之后就到按键消息处理中:
msg_bt.c下func_bt_message()中:

caseKD_PLAY_PWR_USER_DEF:if(bt_tws_is_connected()){//对耳的时候控制是不是要恢复出厂设置if(bt_tws_is_slave())//副耳按下的时候给主耳发送标志{sys_cb1.double_mun_flag=1;//开启清理标志位的计时bt_tws_user_key(0x16);//副耳已按下,给主耳传递消息}else{sys_cb1.double_mun_flag=1;//开启清理标志位的计时if(sys_cb1.zhuer_doubleflag==0)//如果主耳双击标志位为0,则置1sys_cb1.zhuer_doubleflag=1;}}else//单耳时直接唤醒siri{bt_siri_switch();}break;

之后就是主副机之间传递的消息处理:
bsp_bt.c下bt_emit_notice()中:

caseBT_NOTICE_TWS_USER_KEY:if(param==0x16){//主耳接收的处理sys_cb1.fuer_doubleflag=1;//副耳标志位置1}elseif(param==0x17){//清理动作,主机给副机发送func_message(EVT_DOUBLE_MSG_EN);}break;

之后就是计时处理,计时时间内满足条件就恢复出厂设置,不满足就执行双击按键处理:
bsp_sys.c下usr_tmr5ms_isr()中

if((sys_cb1.zhuer_doubleflag==1)||(sys_cb1.fuer_doubleflag==1)||(sys_cb1.double_mun_flag>=1)){//检测到了双击信号或者清理标志位的计时已开启,开始计时sys_cb1.double_mun_flag++;//计时}if(sys_cb1.double_mun_flag>=100){//500ms内条件不满足就不执行清除动作,标志位清0,唤醒sirisys_cb1.zhuer_doubleflag=0;sys_cb1.fuer_doubleflag=0;sys_cb1.double_mun_flag=0;func_bt_message(EVT_DOUBLE_SIRI_EN);//双击超时的时候响应按键处理}

之后就是检测到条件满足,执行清理动作:
fun_bt.c下func_bt_process()中:

if((sys_cb1.zhuer_doubleflag==1)&&(sys_cb1.fuer_doubleflag==1)&&(sys_cb1.double_mun_flag<=100)){bt_tws_user_key(0x17);//给副耳发送消息,执行清理消息func_message(EVT_DOUBLE_MSG_EN);//清理消息传输}

之后就是执行动作的消息处理:
fun.c下func_message()中:

caseEVT_DOUBLE_MSG_EN:bt_clr_all_link_info();//清理函数处理func_cb.sta=FUNC_NULL;//模式清空break;

清理函数处理实现:(底层已写好)
bsp_uart.c下:

voidclear_bt_auto_switch_maddr(void){u8 addr[7];memset(addr,0,7);cm_write(addr,PARAM_MASTER_ADDR_VALID,7);cm_sync();}voidbt_clr_all_link_info(void){clear_bt_auto_switch_maddr();//地址是否有效及地址数据清0bt_nor_delete_link_info();//删除手机配对信息bt_tws_delete_link_info();//删除tws配对信息}

一些底层的定义:(底层已写好)
bsp_param.h下:

#definePARAM_BT108//前面108byte存放蓝牙信息#definePARAM_MASTER_ADDR_VALIDPARAM_BT+8//用于记录主耳的地址是否有效#definePARAM_MASTER_ADDRPARAM_BT+9//6BYTE

相关新闻

  • 三菱CNC数据采集
  • Qwen3-Embedding-0.6B-8bit模型优化技巧:提升嵌入质量的10个实用方法
  • Ornith-1.0-9B-OptiQ-4bit常见问题解答:新手必知的10个关键问题

最新新闻

  • Python调用API实现快递物流信息自动化查询与批量处理
  • C语言指针完全指南:从内存模型到实战应用详解
  • 三星换电池品牌哪个靠谱:质酷三星专配 - MXyuyu
  • 如何永久保存你的微信聊天记忆?这个免费工具让数据真正属于你
  • LabVIEW XY图自定义游标系统设计与优化
  • kubectl-dba实战案例:解决Kubernetes中PostgreSQL连接问题的完整指南

日新闻

  • Toon Boom Harmony 高效工作流:从节点视图到镜头标记的实战技巧
  • 真力时售后维修电话,为您提供专业腕表保养与故障修复服务权威公示(2026年7月最新) - 亨得利官方服务中心
  • 【C++】类和对象--构造函数进阶(初始化列表与explicit)

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号