恒玄科技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 ...
随机推荐
- 使用.NET Core实现不同服务器SQL Server 数据库同步方案
代码片段: 1 using DataSync.Core; 2 using Furion.Logging.Extensions; 3 using Microsoft.Data.SqlClient; 4 ...
- Spring一套全通3—AOP编程
百知教育 - Spring系列课程 - AOP编程 第一章.静态代理设计模式 1. 为什么需要代理设计模式 1.1 问题 在JavaEE分层开发开发中,那个层次对于我们来讲最重要 DAO ---> ...
- 神奇的 SQL ,同时实现小计与合计,阁下该如何应对
开心一刻 今天,小区有个很漂亮的姑娘出嫁 我对儿子说:你要好好学习,认真写作业,以后才能娶到这么漂亮的老婆 儿子好像听明白了,思考了一会,默默的收起了作业本 然后如释重负的跟我说到:爸,我以后还是不娶 ...
- Rating 算法
Rating 算法 这是一种 OJ 常用的算法,下面进行介绍 公式 $ Rating $ 的计算公式如下: $ Rating = R + K(P - E) $ 这里 $ R $ 表示当前 $ Rati ...
- MySQL-分区表和分区介绍
一.MySQL分区简介 1.数据库分区 MySQL是一种常用的关系型数据库管理系统,分区表是一种在MySQL数据库中处理大规模数据的最佳方案之一,其主要目的是为了在特定的SQL操作中减少数据读写的总量 ...
- IntelliJ IDEA 2023.1永久激活方法
IntelliJ IDEA永久激活方法 以下为破解教程: 注意:适用于IntelliJ IDEA 2021.3及其以上版本. 1. 清空IDEA以前的激活方法 大家可能在网上找了很多破解方法,比如修改 ...
- 压缩软件7-Zip的简单使用
简介及下载地址 7-Zip是一款开源免费的压缩软件,支持windows系统及Linux系统,压缩后文件扩展名默认为.7z后缀. 网址: https://www.7-zip.org/ 截图如下: 也 ...
- NC15033 小G有一个大树
题目链接 题目 题目描述 小G想要把自己家院子里的橘子树搬到家门口(QAQ..就当小G是大力水手吧) 可是小G是个平衡性灰常灰常差的人,他想找到一个这个橘子树的平衡点. 怎么描述这棵树呢...就把它看 ...
- P4414题解
原题 题意简述: 有 $3$ 个整数,将他们排序,将它们存到 $a,b,c$ 三个变量中,满足 $a<b<c$,再按照规则输出. 不难发现,我们可以用到 sort 函数,这个函数的作用是将 ...
- Python 装饰器解析(二)
前面一篇文章介绍了python装饰器,最后引入了functools.wraps的使用,本篇文章将对它进行深入的探究. functools模块提供了一系列的高阶函数以及对可调用对象的操作,其中为人熟知的 ...