恒玄科技BES250解决方案之双耳链接调试总结和源码分析
一 前言
bes2500芯片在tws耳机应用十分广泛,该芯片有着资源强大,音质好,大厂背书等特色。吸引了不少粉丝跟随。
最近在调试该芯片的tws配对流程,花费了一些时间,踩了一些坑,这里做一个总结和备忘吧。
二 源码分析
TWS耳机,往往是双耳先进入配对,然后才会进入和手机的配对流程,这里拿我这边的sdk代码做实例分析。
首先,要让双耳都进入配对模式,也就是在让双耳都进入可配对状态,代码如下所示。
#ifdef IBRT_SEARCH_UI
if(false==is_charging_poweron)
app_ibrt_enter_limited_mode();
#endif
app_bt_accessmode_set(BTIF_BT_DEFAULT_ACCESS_MODE_PAIR);
其次,让任意一个耳机进入搜索tws配对状态,原厂的是通过双击powerkey进入这种状态的。需要确认是否会进入这种状态。
TRACE(0,"double kill nv_role:%d ",p_ibrt_ctrl->nv_role);
if(IBRT_UNKNOW==p_ibrt_ctrl->nv_role)
{
app_ibrt_if_init_open_box_state_for_evb();
app_start_tws_serching_direactly();
}
else
{
bt_key_handle_func_doubleclick();
}
这就会进入了两个耳机的互联状态。假如搜索到,就会有下面的搜索到的日志信息:
aa aa aa aa bb bb
8134/I/NONE /R-M/ 8 | inqmode = 2
07 09 59 69 6e 5f 42 54 11 03 01 00 0e 11 0f 11 0c 11 0b 11
8136/I/NONE /R-M/ 8 | ##RSSI:-71
8136/I/NONE /R-M/ 8 | local aa aa aa aa bb bb 8137/I/NONE /R-M/ 8 | <1>
8137/I/NONE /R-M/ 8 | <2>
8137/I/NONE /R-M/ 8 | <3> search name len 6 Yin_BT 8 | ibrt_core_v2:link_type=0, e<88>! <80>¨^F local name Yin_BT 8138/I/NONE /R-M/ 8 | <4>
8138/I/NONE /R-M/ 8 | ibrt_scan_mgr:set_access_mode=0, LR=0xc06a1db
8139/I/NONE /R-M/ 8 | ibrt_scan_mgr:btif_me_set_accessible_mode status:02
配对成功之后,会上报日志:
custom_ui tws pairing_state changed = 2 with reason 0x0,role=0
对应的代码如下所示:
TRACE(2,"custom_ui tws pairing_state changed = %d with reason 0x%x,role=%d",state,reason_code, ui_role);
switch(state)
{
case IBRT_CONN_PAIRING_IDLE:
break;
case IBRT_CONN_PAIRING_IN_PROGRESS:
break;
case IBRT_CONN_PAIRING_COMPLETE:
#ifdef MEDIA_PLAYER_SUPPORT
// if (app_ibrt_if_is_ui_slave() && (btif_besaud_is_connected()))
// {
// app_voice_report(APP_STATUS_INDICATION_PAIRSUCCEED, 0);
// }
app_voice_report(APP_STATUS_INDICATION_PAIRSUCCEED, 0);
#endif
当听到双耳同时pariing success 之后,说明两个耳机连接成功,可以链接手机了。这个时候,手机才可以搜索到。
三 总结:
原始sdk只提供了源码。具体的想要怎么进入配对,可自行修改即可。
笔者用的bin文件链接如下,如有需求请自取:
链接: https://pan.baidu.com/s/1ZRHOIkxpgLlCZWJi83A6vw 密码: n2h3
--来自百度网盘超级会员V3的分享
串口波特率:1152000
恒玄科技BES250解决方案之双耳链接调试总结和源码分析的更多相关文章
- Spring源码分析之循环依赖及解决方案
Spring源码分析之循环依赖及解决方案 往期文章: Spring源码分析之预启动流程 Spring源码分析之BeanFactory体系结构 Spring源码分析之BeanFactoryPostPro ...
- 恒创科技 基于openStack云主机
https://www.henghost.com/cloud-vps.shtml?s=gg&gclid=CKaXuOyr79UCFY-TvQodMJ8BCw
- vs2008 c#项目调试dll源码,问题:“若要调试此模块,请将其项目生成配置更改为“调试”模式” 的解决方案
情况: 1:有程序 Trans.exe 的vs2008 c#源码:Trans.exe项目里引用了 Water.dll: 2:有Water.dll的项目源码: 3:想在Trans.exe里调试Water ...
- HDFS源码分析之编辑日志编辑相关双缓冲区EditsDoubleBuffer
EditsDoubleBuffer是为edits准备的双缓冲区.新的编辑被写入第一个缓冲区,同时第二个缓冲区可以被flush.为edits准备的双缓冲区.新的编辑被写入第一个缓冲区,同时第二个缓冲区可 ...
- Xshell缺失mfc110u.dll文件解决方案(有下载链接)
解决方案 把下面两个文件都下载安装就可以了. 1.vcredist_x86.exe链接: https://pan.baidu.com/s/1njbNHdjqH6x34GQvj4BTBg提取码: pwq ...
- SpringCloudAlibaba分布式事务解决方案Seata实战与源码分析-上
概述 定义 Spring Cloud Alibaba Seata 官网地址 https://seata.io/zh-cn/ 最新版本1.5.2 Spring Cloud Alibaba Seata 文 ...
- SpringCloudAlibaba分布式事务解决方案Seata实战与源码分析-中
事务模式 概述 在当前的技术发展阶段,不存一个分布式事务处理机制可以完美满足所有场景的需求.一致性.可靠性.易用性.性能等诸多方面的系统设计约束,需要用不同的事务处理机制去满足. 目前使用的流行度情况 ...
- WinForm 天猫2013双11自动抢红包【源码下载】
1. 正确获取红包流程 2. 软件介绍 2.1 效果图: 2.2 功能介绍 2.2.1 账号登录 页面开始时,会载入这个网站:https://login.taobao.com/member/login ...
- 【问题解决方案】Dev C++ 无法调试的问题与解决
听翁恺老师课的时候用到一个叫DevC++的编辑器. 学到调试部分的时候,老师的没问题我的报错.我?? 试一试网上查到的方法: 工具 --> 编译选项 --> 代码生成/优化 --> ...
- 在mac上用parallels创建双windows虚拟机调试windows驱动
先创建两个windows 7 虚拟机,一个装windbg作为调试机,一个被调试 1 调试机 1 先装windbg https://developer.microsoft.com/en-us/windo ...
随机推荐
- 线程锁(Python)
一.多个线程对同一个数据进行修改 from threading import Thread,Lock n = 0 def add(lock): for i in range(500000): glob ...
- USACO 2022 Cu 题解
USACO 2022 Cu 题解 AK用时:$ 3 $ 小时 $ 30 $ 分钟. A - Cow College 原题 Farmer John 计划为奶牛们新开办一所大学! 有 $ N $($ 1 ...
- ESP8266的AT指令模块程序
最新代码可点击下载:ESP8266 模块代码 和以下代码实现方式不一致,更加自由可控 本段代码只是测试了esp8266作为服务器端使用,没有测试作为客户端使用. 没有超长延时等待或死循环等待AT指令反 ...
- Spring Boot 参数校验注解(自整理,不停的测试更新)
首先我们只使用java官方的 javax.validation.constraints ,足以使用了,不使用spring boot 自身的,自身的与官方的一致,可能会有扩展,但是还得引入包,麻烦,只用 ...
- HBase-Hbase启动异常java.lang.IllegalArgumentException: object is not an instance of declaring class
1.问题描述 HBase启动时异常如下: java.lang.IllegalArgumentException: object is not an instance of declaring clas ...
- [Maven]关于Maven的生命周期与命令
关于Maven的生命周期与命令 工作的时候对Maven的install和package的使用产生了一些疑问,干脆将Maven的整个生命周期都复习总结一遍. 先看下在IDEA中Maven的生命周期节点: ...
- 【译】.NET 8 网络改进(一)
原文 | Máňa,Natalia Kondratyeva 翻译 | 郑子铭 随着新的 .NET 版本的发布,发布有关网络空间中新的有趣变化的博客文章已成为一种传统.今年,我们希望引入 HTTP 空间 ...
- ABC 326
E 题意: 给定一个 \(n\) 面骰,长度 \(n\) 的数组 \(a\) 和一个初始为 \(0\) 的变量 \(x\). 每次投掷骰子,等概率获得 \(1 \sim n\) 中的一个数 \(p\) ...
- NEMU PA 2-1 实验报告
课程地址:https://www.bilibili.com/video/BV1TE411P7tq 一.实验目的 通过PA2-0了解了汇编基础知识和如何去阅读i386手册后,在这个阶段我们就需要: 了解 ...
- NC20811 蓝魔法师
题目链接 题目 题目描述 "你,你认错人了.我真的,真的不是食人魔."--蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于k,两种方案不同当且仅当存在一 ...