一 前言

 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解决方案之双耳链接调试总结和源码分析的更多相关文章

  1. Spring源码分析之循环依赖及解决方案

    Spring源码分析之循环依赖及解决方案 往期文章: Spring源码分析之预启动流程 Spring源码分析之BeanFactory体系结构 Spring源码分析之BeanFactoryPostPro ...

  2. 恒创科技 基于openStack云主机

    https://www.henghost.com/cloud-vps.shtml?s=gg&gclid=CKaXuOyr79UCFY-TvQodMJ8BCw

  3. vs2008 c#项目调试dll源码,问题:“若要调试此模块,请将其项目生成配置更改为“调试”模式” 的解决方案

    情况: 1:有程序 Trans.exe 的vs2008 c#源码:Trans.exe项目里引用了 Water.dll: 2:有Water.dll的项目源码: 3:想在Trans.exe里调试Water ...

  4. HDFS源码分析之编辑日志编辑相关双缓冲区EditsDoubleBuffer

    EditsDoubleBuffer是为edits准备的双缓冲区.新的编辑被写入第一个缓冲区,同时第二个缓冲区可以被flush.为edits准备的双缓冲区.新的编辑被写入第一个缓冲区,同时第二个缓冲区可 ...

  5. Xshell缺失mfc110u.dll文件解决方案(有下载链接)

    解决方案 把下面两个文件都下载安装就可以了. 1.vcredist_x86.exe链接: https://pan.baidu.com/s/1njbNHdjqH6x34GQvj4BTBg提取码: pwq ...

  6. SpringCloudAlibaba分布式事务解决方案Seata实战与源码分析-上

    概述 定义 Spring Cloud Alibaba Seata 官网地址 https://seata.io/zh-cn/ 最新版本1.5.2 Spring Cloud Alibaba Seata 文 ...

  7. SpringCloudAlibaba分布式事务解决方案Seata实战与源码分析-中

    事务模式 概述 在当前的技术发展阶段,不存一个分布式事务处理机制可以完美满足所有场景的需求.一致性.可靠性.易用性.性能等诸多方面的系统设计约束,需要用不同的事务处理机制去满足. 目前使用的流行度情况 ...

  8. WinForm 天猫2013双11自动抢红包【源码下载】

    1. 正确获取红包流程 2. 软件介绍 2.1 效果图: 2.2 功能介绍 2.2.1 账号登录 页面开始时,会载入这个网站:https://login.taobao.com/member/login ...

  9. 【问题解决方案】Dev C++ 无法调试的问题与解决

    听翁恺老师课的时候用到一个叫DevC++的编辑器. 学到调试部分的时候,老师的没问题我的报错.我?? 试一试网上查到的方法: 工具 --> 编译选项 --> 代码生成/优化 --> ...

  10. 在mac上用parallels创建双windows虚拟机调试windows驱动

    先创建两个windows 7 虚拟机,一个装windbg作为调试机,一个被调试 1 调试机 1 先装windbg https://developer.microsoft.com/en-us/windo ...

随机推荐

  1. 线程锁(Python)

    一.多个线程对同一个数据进行修改 from threading import Thread,Lock n = 0 def add(lock): for i in range(500000): glob ...

  2. USACO 2022 Cu 题解

    USACO 2022 Cu 题解 AK用时:$ 3 $ 小时 $ 30 $ 分钟. A - Cow College 原题 Farmer John 计划为奶牛们新开办一所大学! 有 $ N $($ 1 ...

  3. ESP8266的AT指令模块程序

    最新代码可点击下载:ESP8266 模块代码 和以下代码实现方式不一致,更加自由可控 本段代码只是测试了esp8266作为服务器端使用,没有测试作为客户端使用. 没有超长延时等待或死循环等待AT指令反 ...

  4. Spring Boot 参数校验注解(自整理,不停的测试更新)

    首先我们只使用java官方的 javax.validation.constraints ,足以使用了,不使用spring boot 自身的,自身的与官方的一致,可能会有扩展,但是还得引入包,麻烦,只用 ...

  5. 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 ...

  6. [Maven]关于Maven的生命周期与命令

    关于Maven的生命周期与命令 工作的时候对Maven的install和package的使用产生了一些疑问,干脆将Maven的整个生命周期都复习总结一遍. 先看下在IDEA中Maven的生命周期节点: ...

  7. 【译】.NET 8 网络改进(一)

    原文 | Máňa,Natalia Kondratyeva 翻译 | 郑子铭 随着新的 .NET 版本的发布,发布有关网络空间中新的有趣变化的博客文章已成为一种传统.今年,我们希望引入 HTTP 空间 ...

  8. ABC 326

    E 题意: 给定一个 \(n\) 面骰,长度 \(n\) 的数组 \(a\) 和一个初始为 \(0\) 的变量 \(x\). 每次投掷骰子,等概率获得 \(1 \sim n\) 中的一个数 \(p\) ...

  9. NEMU PA 2-1 实验报告

    课程地址:https://www.bilibili.com/video/BV1TE411P7tq 一.实验目的 通过PA2-0了解了汇编基础知识和如何去阅读i386手册后,在这个阶段我们就需要: 了解 ...

  10. NC20811 蓝魔法师

    题目链接 题目 题目描述 "你,你认错人了.我真的,真的不是食人魔."--蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于k,两种方案不同当且仅当存在一 ...