Page 1 of 1

使用I2S播放音乐时,BLE 不能被手机扫描到

Posted: Wed Sep 07, 2022 2:21 am
by sam131208
你好:
我以esp-idf-v4.4\examples\bluetooth\bluedroid\ble\ble_hid_device_demo 修改,增加一个任务,解码opus steam,使用I2S播放。上电后,在手机可以看到“hid"设备, 关闭手机蓝牙再开后,就扫描不到'hid"设备了。 直到关闭音乐播放,立即可以扫描到设备"hid".
我修改解码opus steam的任务优先级也无法解决这个问题。请问,是否I2S的播放会影响蓝牙广播?该怎么解决。

Re: 使用I2S播放音乐时,BLE 不能被手机扫描到

Posted: Thu Sep 08, 2022 3:12 am
by sam131208
找到原因了,应该是读取flash造成的。 我把opus stream文件放在 flash (与程序在同一个flash), 每次只读取一小段数据(20ms一帧的opus stream 的数据,小于256byte)。只保留flash的读取,不解码,不使用到i2s,也会影响广播。屏蔽了flash的读取,则广播正常。
同样的处理方式,在zephyr上面是正常的。不明白为什么会影响到蓝牙广播?

Re: 使用I2S播放音乐时,BLE 不能被手机扫描到

Posted: Mon Sep 19, 2022 3:26 am
by sam131208
问题已经解决,是功放的输出线干扰。