SF32LB52 将设备麦克风作为 Windows 蓝牙 HFP 麦克风时,连接后自动断开

我正在基于 SF32LB52 开发一个蓝牙麦克风设备,当前工程主要基于 SDK example/bt/hfp 例程修改,目标是让设备作为 HFP HF 连接 Windows PC,由设备采集本地麦克风,并通过 HFP SCO/eSCO 上行到电脑,作为 Windows 的麦克风输入。同时也直接烧录测试了官方 example/bt/hfp_relay 例程。手机连接时可以完成 RFCOMM、HFP AT 协商和 SCO 音频连接,但 Windows 连接时只能建立 ACL,之后没有出现 HFP RFCOMM 连接回调,约 20~30 秒后断开。

目标不是播放电脑音频,而是:

设备本地麦克风
↓
设备 HFP HF
↓
SCO/eSCO 音频上行
↓
Windows 电脑 HFP AG
↓
Windows 麦克风输入

设备采集本地麦克风音频后,希望通过经典蓝牙 HFP 发送到 Windows,供腾讯会议、录音软件或其他通话软件使用。
当前设备配置:
CONFIG_CFG_HFP_HF=y
之前也测试过同时开启:
CONFIG_CFG_HFP_HF=y
CONFIG_CFG_HFP_AG=y
但当前目标只需要:


电脑:HFP AG
设备:HFP HF

手机连接设备时工作正常,日志中可以看到完整流程:

ACL 连接成功
RFCOMM 连接成功
BTS2MU_HF_CONN_CFM state 2 res:0
HFP AT 协商成功
HFP HF connected
SCO 连接成功
BTS2MU_HF_CONN_CFM state 3 res:0

但是 Windows 连接设备时,Windows 属性中显示:
Hands-Free HF
设备状态:这个设备运转正常

然而 Windows 连接时,设备日志实际只看到:

ACL connection request
ACL connection complete
Pair with device
Encryption status updated
约 20~30 秒后:
l2c_ch_fn_disconn_req
link dis-connected

没有看到:

hfp_hf_gap_conn_cfm_hdl
BTS2MU_HF_CONN_CFM state 2 res:0
HFP AT command
SCO connected

连接约 20~30 秒后断开。

我也尝试过:

hfp_cmd hfp_connect <PC_MAC>

命令可以解析,但仍然没有建立 HFP RFCOMM,也没有进入 SCO。

现在想知道的是SF32LB52 是否支持作为 HFP HF 连接 Windows PC 的 HFP AG呢?

芯片:SF32LB52
开发板:sf32lb52-lcd_n16r8
Windows 版本:win10

求助 @yxhuang @zhenpeng

可以提供一下日志吗

COM9 2026-09-24 09-40-24.289.log (50.6 KB)
官方原始 bt\hfp 例程

官方原始 bt\hfp 例程,连接电脑的日志如下:

COM9 2026-09-24 09-40-24.289.log (50.6 KB)
连接手机的日志如下:

COM9 2026-09-24 09-49-23.602.log (108.0 KB)
手机可以连接成功,一直保持不断开,但是pc不行

@chaotaoyang 麻烦帮忙看一下谢谢

初步怀疑是pc需要连A2DP呢,你先试试用设备端连接PC呢

nvds update hci_log 1 开启hci log 可以用工具实时看hci log

PC主动连接的是A2DP,没有主动连接hfp hf相关的流程。

建议试一下:设备端主动连接PC hf service 看能不能成功呢

从目前测试看PC 支持hfp hf servcie 和 ag service,但是建立SLC会失败

COM9 2026-09-24 11-37-29.009.log (132.6 KB)
日志如上

还是bt/hfp例程
这个日志是我现在先烧录进去,然后先跟电脑做了一次连接,连接上了之后他自己断开了,,这时候电脑端显示以匹配

image

然后中间重启是我手动重启了一下
重启后执行
nvds update hci_log 1
hfp_cmd hfp_connect 28:95:29:3B:83:E5
电脑端没反应

@chaotaoyang

从上面log上看,PC端不支持HF的连接哈

您的意思是我现在的板子不支持hfp连接电脑嘛,还是说我的电脑蓝牙有问题呢 :thinking:

我的蓝牙耳机可以正常连接PC,并且耳机可以作为麦克风使用,因此PC应该是支持HFP的吧 @chaotaoyang

[2026-09-24 11:40:18.561] [230333] D/NO_TAG bts: fsm: SDC st:1 evt:4
[2026-09-24 11:40:18.561]
[2026-09-24 11:40:18.561] [230339] D/bt_common bts: dm_set gap_wr_scan_enb_req_hdl 8761
[2026-09-24 11:40:18.561]
[2026-09-24 11:40:18.561] [230346] D/bt_common bts: svc_release gap_sdc_open_srch_cfm_hdl 1687
[2026-09-24 11:40:18.561]
[2026-09-24 11:40:18.561] [230354] D/bt_common bts: hfp_hf_gap_sdc_close_ind_hdl res c st 2
[2026-09-24 11:40:18.561]
[2026-09-24 11:40:18.561]
[2026-09-24 11:40:18.561] [230361] D/bt_common bts: HF device_state new_sate 0x 0, old_state 0x 1
[2026-09-24 11:40:18.561]
[2026-09-24 11:40:18.561] e[32m[230368] I/btapp_hf bts: hfp msg *msg_type 8003 inst_data->st 1
[2026-09-24 11:40:18.561]
[2026-09-24 11:40:18.561]
[2026-09-24 11:40:18.561] e[0me[32m[230375] I/btapp_hf bts: BTS2MU_HF_CONN_CFM state 0 res:c

建议你换A2DP SHARING工程看一下呢,这个明显是sdp搜索不到电脑端的ag service的信息呢,建议你这边研究一下pc端AG服务呢。

log需要上传这4个文件呢

您好,这是连接pc的日志,在最下面连接上了,然后又断开了

log.zip (23.3 KB)

前提是安装并将解析hci的软件(例如:ComProbe Protocol Analysis System)打开

这个log 只是ACL connected + 配对过程完成,但是没有来连接协议,比如hfp ,建议你换个工程(a2dp_sharing)这个工程有A2DP 和 hfp service

好的我现在尝试一下

打开并且重启一下,并且安装一下fortline 工具