我正在基于 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
官方原始 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不行
初步怀疑是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例程
这个日志是我现在先烧录进去,然后先跟电脑做了一次连接,连接上了之后他自己断开了,,这时候电脑端显示以匹配

然后中间重启是我手动重启了一下
重启后执行
nvds update hci_log 1
hfp_cmd hfp_connect 28:95:29:3B:83:E5
电脑端没反应
@chaotaoyang
您的意思是我现在的板子不支持hfp连接电脑嘛,还是说我的电脑蓝牙有问题呢 
我的蓝牙耳机可以正常连接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服务呢。
您好,这是连接pc的日志,在最下面连接上了,然后又断开了
log.zip (23.3 KB)
前提是安装并将解析hci的软件(例如:ComProbe Protocol Analysis System)打开
这个log 只是ACL connected + 配对过程完成,但是没有来连接协议,比如hfp ,建议你换个工程(a2dp_sharing)这个工程有A2DP 和 hfp service
打开并且重启一下,并且安装一下fortline 工具