You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TI CC254x BLE外设为何被Android 6.0.1手机自动连接/断开?

解决TI CC254x外设被Android 6.0.1手机自动反复连断的问题

我之前调试基于CC254x的BLE外设时,刚好碰到过几乎一模一样的Android 6.x自动重连问题,结合TI官方文档和踩过的坑,给你几个具体的排查和解决方向:

  • 检查外设的GAP角色配置
    打开你的外设代码,重点看GAPRole_SetParameter的配置:

    • 确认在GAP_LINK_TERMINATED_EVENT触发后,是否正确将GAPROLE_ADVERT_ENABLED设置为GAP_ADV_ENABLED(非连接可发现模式),而不是保持连接模式的广播。如果断开后外设仍在发送定向广播,Android 6.0.1系统可能会自动尝试重连。
    • 检查GAPROLE_PARAM_UPDATE_ENABLE的设置,要是开启了自动参数更新,频繁的参数请求可能触发Android系统的异常重连逻辑,建议暂时关闭这个选项测试。
  • 清理手机端的BLE缓存
    Android 6.x的蓝牙系统会缓存已配对/连接过的设备信息,当设备的UUID、名称未变化时,系统可能在后台自动发起重连。你可以:

    • 进入手机蓝牙设置,删除该外设的配对记录,再重新测试连接断开循环。
    • 换用系统自带的蓝牙连接功能,代替第三方BLE扫描器APP,排除APP层面的缓存或逻辑问题。
  • 修复外设的断开事件处理逻辑
    仔细检查GAP_LINK_TERMINATED_EVENT的处理代码:

    • 确保断开后重置了所有连接相关的状态变量,比如连接句柄、服务特征的读写缓存,避免残留状态导致外设发送异常广播。
    • 尝试在断开事件后增加500ms左右的延迟再开启广播,给手机足够的时间清理连接状态,减少误触发的概率。
  • 升级协议栈补丁
    BLE-CC254x-1.4.2存在几个已知的兼容性BUG,尤其是和Android 6.x的交互问题。建议查看TI官方的release notes,升级到1.4.2a版本(如果还没更新的话),这个版本修复了多个与断开事件、广播状态相关的问题,很可能直接解决你的问题。

  • 抓包定位根因
    用TI的Packet Sniffer工具抓取BLE空中数据包,分析自动重连时的交互流程:

    • 如果是手机主动发起连接请求,那问题大概率在手机端的缓存或系统逻辑;
    • 如果是外设发送了异常的广播包(比如重复的定向广播),就需要回到外设代码排查广播配置。

内容的提问来源于stack exchange,提问作者Dooggy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:17:22