news 2026/9/28 16:21:59

Windows蓝牙抓包实战:BTVS与Wireshark配置及协议解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows蓝牙抓包实战:BTVS与Wireshark配置及协议解析

1. 蓝牙抓包这件事,为什么值得在Windows上认真做一遍

蓝牙调试最让人头疼的地方在于:它不像Wi-Fi或者有线网络那样,你随便找个网卡就能看到全部流量。蓝牙的协议栈分层多、跳频机制复杂、连接建立过程短促,一旦设备之间出现配对失败、连接断续、音频卡顿、数据丢包这类问题,光靠看日志和猜,效率极低。我最早接触蓝牙抓包是因为一个HC05模块和Windows主机之间的串口透传项目,数据时不时丢几帧,串口助手上看就是少了一段,没有任何报错。当时试过换模块、换波特率、改供电,折腾了两天毫无进展,最后用BTVS配合Wireshark抓了一次空中包,五分钟就定位到是主机侧发送间隔太密导致模块缓冲区溢出。从那以后,蓝牙抓包就成了我调试蓝牙问题的第一手段。

这篇文章要讲的就是在Windows环境下,用BTVS(Bluetooth Virtual Sniffer)配合Wireshark完成从软件安装、驱动配置、抓包启动到数据解析的完整流程。BTVS是Wireshark官方生态里专门用于蓝牙协议分析的组件,它能够通过特定的蓝牙适配器捕获HCI层以及空口层面的数据,把原本看不见的蓝牙交互变成Wireshark里一条条可以逐层展开的协议报文。适合阅读这篇文章的人包括:正在做蓝牙模块(HC05、ESP32、nRF系列等)开发的嵌入式工程师、调试蓝牙音频(A2DP、SCO切换)的测试人员、分析蓝牙键盘鼠标连接问题的技术支持,以及任何想搞清楚蓝牙设备之间到底在聊什么的技术爱好者。不需要你事先精通蓝牙协议栈,但需要你有基本的Windows操作能力和一点点网络抓包的概念。

整篇内容我会按照实际操作的顺序来组织:先讲清楚BTVS和Wireshark各自扮演什么角色、为什么这样搭配,再进入安装配置的细节,然后是抓包实操和协议解析,最后把我踩过的坑和常见问题整理成速查表。每一步我都会说明为什么这么做,以及不做会怎样。

2. 工具选型与整体方案设计思路

2.1 BTVS和Wireshark的分工到底是什么

很多人第一次听到BTVS会以为它是一个独立的抓包软件,其实不是。BTVS全称Bluetooth Virtual Sniffer,它的本质是一个虚拟嗅探器接口,作用是把蓝牙适配器捕获到的数据转换成Wireshark能识别的格式,然后通过本地回环或者管道的方式喂给Wireshark。你可以把它理解成一个翻译官:蓝牙硬件说的是HCI语言,Wireshark只听得懂pcap格式,BTVS在中间做实时转译。

Wireshark在这套组合里承担的是分析端的角色。它负责接收BTVS送来的数据流,按照蓝牙协议栈的层次结构进行解析和展示。Wireshark内置了非常完整的蓝牙协议解析器,从最底层的HCI H4封装,到L2CAP、RFCOMM、SDP、ATT、GATT,再到上层的A2DP、AVRCP、HFP,全都能逐层展开。这意味着你抓到的不是一个二进制块,而是一棵可以点开的协议树。

两者缺一不可。没有BTVS,Wireshark在Windows上无法直接访问蓝牙适配器的嗅探接口;没有Wireshark,BTVS抓到的数据没有友好的解析界面,你只能面对一堆十六进制。所以这套方案的核心思路就是:BTVS负责采集和转译,Wireshark负责解析和呈现。

2.2 为什么在Windows上选这套方案而不是其他

Windows平台上的蓝牙抓包方案其实有好几种,我简单对比一下,你就明白为什么BTVS+Wireshark是综合体验最好的选择。

方案优点缺点适用场景
BTVS + Wireshark免费、协议解析完整、与Wireshark无缝集成需要特定蓝牙适配器、配置略繁琐日常开发调试、协议学习
专用硬件嗅探器捕获空口数据最完整、不依赖主机适配器价格高、携带不便深度协议分析、认证测试
手机端抓包App便携、上手快解析能力弱、无法看底层HCI快速排查连接问题
厂商自带调试工具针对性强通用性差、功能受限特定芯片调试

BTVS方案最大的优势在于它和Wireshark是同一个生态,抓到的数据可以直接用Wireshark的全部解析能力,而且Wireshark的过滤器、统计、导出功能都能用上。对于绝大多数开发和调试场景来说,这套组合已经足够。

2.3 对蓝牙适配器的硬性要求

这是整个方案里最容易翻车的地方,我必须提前说清楚。BTVS并不是随便一个蓝牙适配器都能用,它需要适配器支持特定的嗅探模式。具体来说,你需要一个能够被BTVS识别并切换到嗅探模式的蓝牙dongle。市面上很多笔记本自带的蓝牙模块是不支持的,因为它们用的是集成方案,固件里没有开放嗅探接口。

我实测下来比较稳妥的做法是准备一个独立的USB蓝牙适配器,最好是CSR芯片方案的,比如CSR8510。这类适配器价格不贵,几十块钱,但兼容性好,BTVS能直接识别。如果你手头只有笔记本自带蓝牙,可以先试试,但大概率会卡在“找不到设备”这一步。另外要注意,Windows 10和Windows 11对蓝牙驱动的管理方式不同,有时候需要手动替换成WinUSB驱动才能让BTVS接管,这个后面会详细讲。

提示:在买适配器之前,先确认你的使用场景。如果只是抓HCI层的数据(比如看主机和模块之间的指令交互),很多适配器都能凑合;但如果要抓空口数据(比如看两个设备之间的实际射频交互),就必须用支持嗅探的专用dongle。

3. 安装配置全流程与关键细节

3.1 Wireshark的安装与蓝牙组件确认

Wireshark的安装本身不复杂,但有几个细节直接影响后续能不能抓到蓝牙数据。首先去Wireshark官网下载Windows安装包,建议选最新的稳定版,不要用太老的版本,因为蓝牙协议解析器在持续更新,老版本可能认不出新的协议字段。

安装过程中有一个关键步骤:在组件选择界面,确保勾选了“Bluetooth”相关的组件。默认情况下Wireshark会安装大部分协议解析器,但有些精简安装包可能会省略。如果你不确定,安装完成后打开Wireshark,在“帮助”菜单里看“关于Wireshark”,里面会列出已加载的插件和协议,搜一下有没有bt相关的条目。

安装完成后还需要确认一个东西:Npcap。Wireshark在Windows上抓包依赖Npcap驱动,安装Wireshark时会自动提示安装。Npcap的版本建议用最新的,老版本在某些Windows更新后会出现兼容问题。安装Npcap时有一个选项叫“Install Npcap in WinPcap API-compatible Mode”,这个建议勾上,虽然BTVS不一定用到,但有些其他工具会依赖WinPcap接口。

装完之后先别急着抓蓝牙,打开Wireshark看看能不能正常列出网络接口。如果连普通网卡都看不到,说明Npcap没装好,先解决这个再往下走。

3.2 BTVS的获取与安装要点

BTVS的获取渠道需要留意一下。它不像Wireshark那样有独立的安装包,通常是作为Wireshark生态的一部分或者单独的工具包发布。你可以在Wireshark的官方下载页面找到BTVS的链接,或者在一些蓝牙协议分析的专题页面里找到。下载下来通常是一个压缩包,里面包含BTVS的可执行文件和相关的驱动文件。

解压之后不要直接双击运行,先看清楚目录结构。一般会有这几个东西:btvs.exe(主程序)、驱动文件夹、说明文档。安装的核心其实是驱动部分。BTVS需要把蓝牙适配器的驱动替换成它自带的WinUSB驱动,这样它才能直接访问适配器的底层接口。

具体操作是这样的:先插入你的USB蓝牙适配器,让Windows自动安装它自带的驱动。然后在设备管理器里找到这个蓝牙适配器,右键选择“更新驱动程序”,再选“浏览我的电脑以查找驱动程序”,指向BTVS解压目录里的驱动文件夹。安装过程中Windows可能会提示驱动未签名,这时候需要临时禁用驱动签名强制,具体方法是按住Shift点重启,进入高级启动选项,选择“禁用驱动程序强制签名”。这个操作只需要做一次,驱动装好之后正常启动也能用。

注意:替换驱动之后,这个蓝牙适配器就不能再当普通蓝牙用了,Windows的蓝牙功能会认不出它。所以如果你只有一个蓝牙适配器,替换驱动后就没法同时用蓝牙耳机了。建议专门准备一个适配器用于抓包,另一个用于日常使用。

3.3 驱动替换后的设备状态检查

驱动替换完成后,回到设备管理器,你应该能看到这个适配器被归类到了“libusb-win32 devices”或者类似的类别下,而不是原来的“蓝牙”类别。这说明BTVS已经接管了这个设备。如果还是在蓝牙类别下,说明驱动没替换成功,需要重新操作一遍。

这时候可以打开BTVS的主程序试试。正常情况下BTVS启动后会列出可用的嗅探设备,你应该能看到刚才替换了驱动的那个适配器。如果列表是空的,或者提示找不到设备,大概率是驱动问题。可以试试重新插拔适配器,或者在设备管理器里卸载设备后重新扫描。

还有一个容易忽略的点:Windows的蓝牙服务可能会占用适配器。即使驱动替换了,如果蓝牙支持服务还在运行,有时候会干扰BTVS。可以在服务管理器里把“Bluetooth Support Service”先停掉,等抓包完成后再启动。这个不是必须的,但如果你遇到BTVS能识别设备却抓不到数据的情况,可以试试这个操作。

3.4 Wireshark与BTVS的对接配置

BTVS和Wireshark之间的对接有两种方式:一种是通过本地回环接口,一种是通过管道。我推荐用回环接口的方式,因为配置简单、稳定性好。

具体操作:先启动BTVS,在BTVS的界面里选择你的嗅探设备,然后设置输出方式为“Named Pipe”或者“Loopback”。如果选Loopback,BTVS会创建一个虚拟的网络接口,Wireshark可以直接从这个接口抓包。如果选Named Pipe,BTVS会创建一个命名管道,Wireshark需要通过特定的接口类型来连接。

我用的是Loopback方式。启动BTVS并开始嗅探后,打开Wireshark,在接口列表里应该能看到一个新增的接口,名字通常包含“BTVS”或者“Bluetooth”字样。选中这个接口,点击开始抓包,如果配置正确,你马上就能看到数据在滚动。

如果Wireshark的接口列表里没有出现BTVS的接口,检查两个地方:一是BTVS是否已经启动了嗅探(有些版本需要手动点“Start”),二是Wireshark是否以管理员权限运行。Windows上抓包通常需要管理员权限,尤其是访问虚拟接口的时候。

4. 抓包实操与协议解析要点

4.1 抓包前的环境准备与设备配对

在开始抓包之前,先把要分析的蓝牙设备准备好。如果是调试蓝牙模块,先把模块上电,确保它处于可被发现或者可连接的状态。如果是分析两个设备之间的交互,先把它们配对好,但先不要建立连接,这样你能抓到完整的连接建立过程。

我一般的操作顺序是这样的:先启动BTVS并开始嗅探,再打开Wireshark开始抓包,然后才去操作蓝牙设备(比如点击连接、发送数据)。这样能保证从第一个报文开始就被记录下来。如果你先操作设备再开抓包,连接建立阶段的关键报文就丢了,后面分析起来会很被动。

还有一个细节:Windows的蓝牙设置界面有时候会自动去连接已知设备,这会产生额外的干扰流量。如果你只想抓特定设备的交互,可以在抓包前先把其他蓝牙设备断开或者关掉。我试过在抓包时旁边有个蓝牙鼠标一直在发心跳包,结果抓出来的数据里混了一大堆无关的HCI事件,过滤起来很麻烦。

4.2 关键过滤器设置与报文定位

Wireshark抓到的蓝牙数据量可能很大,尤其是周围蓝牙设备多的时候。所以过滤器是必须用的。Wireshark的蓝牙过滤器语法和普通网络过滤器不太一样,它用的是bt*开头的字段。

几个我常用的过滤器:

  • btle:只看低功耗蓝牙的报文,如果你调试的是BLE设备,这个能过滤掉经典蓝牙的干扰。
  • bthci_cmd:只看HCI命令,也就是主机发给控制器的指令。
  • bthci_evt:只看HCI事件,也就是控制器回给主机的响应。
  • btrfcomm:只看RFCOMM层的数据,调试串口透传模块时很有用。
  • btatt:只看ATT层的数据,调试BLE GATT服务时用这个。
  • bluetooth.addr == xx:xx:xx:xx:xx:xx:按设备地址过滤,这个最精准,建议抓包前先记下目标设备的蓝牙地址。

举个例子,如果你在调试HC05模块的串口透传,想知道主机到底发了什么数据给模块,可以用btrfcomm过滤器,然后看RFCOMM Data帧里的Payload,那就是实际传输的数据。如果数据丢了,对比发送端和接收端的Payload就能定位是发送问题还是接收问题。

4.3 连接建立过程的逐层解析

蓝牙连接建立的过程是抓包分析里最有价值的部分之一。以经典蓝牙的RFCOMM连接为例,你在Wireshark里能看到这样的层次:

最底层是HCI层,包含Inquiry(查询)、Inquiry Response(查询响应)、Create Connection(创建连接)、Connection Complete(连接完成)这些事件。这一层能告诉你设备发现和连接建立的时间点,如果连接失败,通常在这一层就能看到原因,比如Page Timeout或者Connection Rejected。

往上是L2CAP层,负责逻辑链路的建立和配置。你会看到L2CAP Connection Request和Connection Response,里面包含PSM(协议服务多路复用器)的值,不同的PSM对应不同的上层协议,比如RFCOMM的PSM是0x0003,SDP的PSM是0x0001。

再往上是RFCOMM层,包含RFCOMM的PN(参数协商)过程,也就是双方协商串口参数的地方。如果你遇到波特率不匹配或者流控问题,这一层的报文能直接告诉你协商结果。

最上层是实际的数据传输,RFCOMM Data帧里就是串口透传的内容。每一帧都有序号,如果序号不连续,说明中间丢帧了。

我建议在分析连接问题时,按照从下往上的顺序看:先确认HCI层连接是否成功,再看L2CAP层链路是否建立,然后看RFCOMM层参数是否协商一致,最后看数据层是否有丢帧。这样逐层排查,问题基本跑不掉。

4.4 音频场景下的A2DP与SCO切换分析

蓝牙音频调试是另一个高频场景。A2DP负责高质量音频传输,SCO负责通话音频,两者之间的切换是很多音频问题的根源。用BTVS+Wireshark抓包,你能清楚地看到切换过程。

在Wireshark里,A2DP的报文会标记为AVDTP协议,你能看到音频编码格式(SBC、AAC等)、采样率、比特率这些参数。SCO的报文则在HCI层就能看到,包含SCO Handle和同步连接参数。

切换过程通常是这样:通话开始时,主机会先建立SCO连接,然后暂停A2DP流,等通话结束后再恢复A2DP。如果你遇到通话时音频卡顿或者切换后A2DP不恢复,抓包看这个流程就能定位是哪一步出了问题。我遇到过SCO建立后A2DP没有正确暂停,导致带宽冲突,音频断断续续,抓包一看就发现主机没有发送AVDTP Suspend命令。

提示:抓音频相关的包时,数据量会比较大,建议设置Wireshark的捕获缓冲区大一点,或者用捕获过滤器只抓特定设备的流量,避免丢包。

5. 常见问题与排查技巧实录

5.1 BTVS识别不到适配器的排查路径

这是新手遇到最多的一个问题。BTVS打开后设备列表是空的,或者提示“No device found”。排查顺序如下:

第一步,确认适配器驱动是否替换成功。打开设备管理器,看适配器是否在“libusb-win32 devices”类别下。如果还在“蓝牙”类别下,说明驱动没替换,回到3.2节重新操作。

第二步,确认适配器是否被其他程序占用。Windows的蓝牙服务、厂商的蓝牙管理软件都可能占用适配器。试试停掉“Bluetooth Support Service”,关掉所有蓝牙相关的托盘程序。

第三步,换一个USB口试试。有些USB口供电不足或者控制器兼容性问题,会导致适配器无法正常初始化。尤其是USB Hub上的口,问题更多。直接插在主机后面的USB口上最稳。

第四步,确认适配器型号是否支持。不是所有CSR芯片的适配器都支持嗅探模式,有些虽然是CSR8510但固件被裁剪过。如果以上步骤都试了还是不行,换一个适配器试试。

5.2 抓到的数据在Wireshark里显示为未知协议

有时候Wireshark能抓到数据,但显示的是“Unknown”或者“Malformed”,没法解析成蓝牙协议。这通常是两个原因:一是BTVS的输出格式和Wireshark的解析器不匹配,二是Wireshark的蓝牙解析器没有正确加载。

先检查Wireshark的协议设置。在“分析”菜单里找到“启用的协议”,搜一下“bluetooth”,确保相关的协议都勾选了。有时候某些蓝牙协议默认是关闭的,需要手动开启。

如果协议都开了还是不行,检查BTVS的输出设置。BTVS在输出时可以选择不同的封装格式,比如HCI H4、HCI H1等。Wireshark需要知道用哪种格式来解析。在Wireshark的接口设置里,找到BTVS的接口,在“接口选项”里设置正确的封装类型。通常选“Bluetooth HCI H4”就能正常解析。

5.3 抓包过程中数据丢帧或卡顿

抓蓝牙包对系统资源的占用比抓普通网络包要大,因为数据速率高、报文密集。如果抓包过程中出现丢帧或者Wireshark卡顿,可以试试这几个优化:

  • 增大Wireshark的捕获缓冲区。在捕获选项里,把缓冲区大小从默认的2MB调到64MB甚至更大。
  • 关闭Wireshark的实时滚动显示。在“视图”菜单里取消“自动滚动”,这样新报文不会强制刷新界面,减少CPU占用。
  • 使用捕获过滤器而不是显示过滤器。捕获过滤器在抓包阶段就过滤掉不需要的报文,减少写入量。比如只抓特定设备地址的流量。
  • 关闭其他占用USB带宽的设备。USB蓝牙适配器和USB摄像头、USB存储设备共享带宽,如果同时工作可能会互相干扰。

5.4 常见问题速查表

问题现象可能原因解决方法
BTVS找不到设备驱动未替换或适配器不支持替换WinUSB驱动,换CSR8510适配器
Wireshark看不到BTVS接口BTVS未启动嗅探或权限不足启动嗅探,以管理员运行Wireshark
数据无法解析封装格式设置错误在接口选项里选HCI H4格式
抓包丢帧缓冲区太小或USB带宽不足增大缓冲区,关闭其他USB设备
连接建立过程抓不到抓包启动晚于设备操作先开抓包再操作设备
音频切换异常SCO和A2DP冲突检查AVDTP Suspend/Start流程
数据内容看不懂未按协议层展开在Wireshark里逐层展开协议树

5.5 几个我踩过的坑和独家技巧

第一个坑是关于驱动签名的。Windows 11对驱动签名要求更严,有时候即使禁用了强制签名,重启后驱动还是会失效。我的做法是装完驱动后不要重启,直接开始抓包,抓完再重启恢复。如果必须重启,重启后重新替换一次驱动,虽然麻烦但能保证可用。

第二个坑是关于蓝牙地址的。Windows的蓝牙设置界面显示的地址格式和Wireshark里的格式可能不一样,比如Windows显示的是带横杠的,Wireshark里是带冒号的。过滤的时候要注意格式转换,不然过滤器不生效。

第三个技巧是关于时间戳的。BTVS抓到的报文时间戳有时候和实际时间有偏差,如果你需要精确的时间分析,可以在抓包时同时录屏或者记下操作时间点,然后在Wireshark里用“Time Shift”功能校正。

第四个技巧是关于导出的。Wireshark可以把抓到的蓝牙报文导出成多种格式,如果你要把数据给同事分析,建议导出成pcapng格式,这个格式保留了所有元数据,对方用Wireshark打开就能看到完整的协议树。如果导出成CSV,很多协议层的细节就丢了。

6. 从抓包数据到问题定位的实战思路

抓包本身不是目的,通过抓包数据定位问题才是。我总结了一套自己的分析流程,分享出来供参考。

先看整体统计。Wireshark的“统计”菜单里有“协议分级”和“会话统计”,先看一眼各类报文的比例。如果HCI Command占了绝大多数,说明主机一直在发指令但设备没响应,可能是设备没正常工作。如果HCI Event里有很多Error,直接看Error的类型就能定位方向。

再看时间线。用Wireshark的“时间”列排序,看关键事件之间的时间间隔。比如从Create Connection到Connection Complete花了多久,如果超过几秒,说明连接建立慢,可能是信号弱或者设备忙。从发送数据到收到确认的间隔也能反映链路质量。

然后看具体报文。找到出问题的那一段,逐层展开协议树,看每一层的字段值。比如RFCOMM的PN协商,看双方提出的参数是否一致,如果不一致,谁拒绝了谁。再比如ATT的Read Response,看返回的数据长度和实际期望的是否相符。

最后做对比。如果你有正常情况下的抓包记录,把异常的和正常的放在一起对比,差异点往往就是问题所在。Wireshark支持同时打开多个抓包文件,用“合并”功能可以把两次抓包合并到一个视图里对比。

这套流程我用了几年,基本上蓝牙相关的问题都能定位到具体原因。最不济也能排除掉大部分可能性,把范围缩小到某个协议层或者某个交互环节。

蓝牙抓包这件事,入门门槛主要在环境配置上,一旦跑通了,后面就是熟练度的问题。BTVS+Wireshark这套组合在Windows上算是性价比最高的方案,免费、功能全、社区支持好。我建议你先用一个简单的蓝牙模块练手,比如HC05的串口透传,抓几次完整的连接和数据传输过程,把协议树的结构看熟。等你能一眼看出RFCOMM Data帧里的Payload对应的是串口助手上的哪个字符时,这套工具就算真正上手了。后面再遇到复杂的音频切换、BLE GATT交互,无非是在这个基础上多认识几个协议层而已。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 16:21:59

USB3.0静电防护实战:TVS选型、布局与调试全解析

1. USB3.0静电防护到底在防什么搞硬件的人都有一个共识:USB3.0接口是整块板子上最容易“猝死”的部位之一。你插拔一次U盘、摸一下接口外壳、甚至冬天穿件毛衣走过去碰一下,都有可能让一颗几毛钱的TVS二极管替你挡下一颗“子弹”。这颗“子弹”就是静电放…

作者头像 李华
网站建设 2026/9/28 16:21:52

ax:基于Kubernetes与gRPC的智能体调度基础设施

1. 项目概述:这不是一个缩写,而是一套正在成型的智能体基础设施范式“ax”这个标题乍看像随手敲下的两个字母,但结合当前技术社区里高频出现的热搜词——AX、Agent Substrate、Kubernetes、gRPC,以及那些带着具体版本号和日志片段…

作者头像 李华
网站建设 2026/9/28 16:20:58

YOLOv5道路交通标识识别:从数据标注到部署的完整实战

简介:基于YOLOv5算法实现的道路交通标识识别系统,是一套面向高校毕业设计、期末大作业与课程设计的完整源码项目,代码注释详细,从数据准备、模型训练到界面部署均有清晰覆盖,初学者按说明简单配置即可运行,…

作者头像 李华
网站建设 2026/9/28 16:20:35

Superpowers实战指南:让AI编程助手从聊天走向干活

最近不少开发者群里都在刷“superpowers”,一开始我以为是漫威电影梗,结果后台接连收到一堆提问:这到底是干啥的?怎么装?跟Codex又是什么关系?还有人专门搜“superpowers java”和“superpowers使用教程”&…

作者头像 李华
网站建设 2026/9/28 16:19:54

安卓设备通电自启改造:boot.img解包修改与fastboot刷入实战

1. 一块老平板引发的折腾:为什么要在boot.img上动刀手里有一批早年出厂的安卓6.0工业平板,原本是做展厅中控用的,724小时插着电跑一个信息展示应用。用了两年多,陆续出现一个很烦人的现象:设备跑着跑着就自己重启&…

作者头像 李华
网站建设 2026/9/28 16:19:47

蓝牙天线设计5个致命细节:PCB与陶瓷天线选型及匹配实战指南

1. 为什么蓝牙天线设计总在“差一点”上栽跟头?你有没有遇到过这样的情况:HC05模块焊上PCB,通电能搜到设备,但一连就断;ESP32开发板跑BLE广播很稳,可配对后传个传感器数据就丢包;或者用嘉立创ED…

作者头像 李华