事情起因:
最近在我使用PCM5102和MAX98357制作播放器的时候,发现播放的时候总是有噪音,无论我怎么检查硬件,噪音依旧还是有。

检查过程:
我从这几个方面检查了问题:
硬件接触不良
PCM5102配置有误
电源噪音
……
很遗憾的是,我把上面的部分检查后还是这样子的。
更诡异的是,当我将PCM5102A替换为之前能正常工作的MAX98357A,神奇的事情发生了:
MAX98357A也跟着有噪音了!!!
这让我意识到,这根本不是硬件的问题!
于是我把目光转向了代码,但是怎么看都看不出来是哪里的问题。
无奈我只能寻求Gemini的帮助,在其指导下,我发现了代码里不起眼的两处:
// 优化WiFi连接
WiFi.setSleep(true);#define I2S_DATA 4
#define I2S_BCK 5
#define I2S_WS 6Gemini 告诉我,I2S信号可能会因为WiFi和引脚配置不当导致输出的音频有噪音
在Gemini的建议下,我将代码修改为如下样子:
#define I2S_DATA 16 // GPIO16
#define I2S_BCK 17 // GPIO17
#define I2S_WS 18 // GPIO18// 优化WiFi连接
WiFi.setSleep(false); // 禁用WiFi睡眠以提高稳定性在禁用了WiFi睡眠和更换I2S引脚配置后,问题迎刃而解了,播放的音频再也没有了噪音。
结论:
我也不清楚这两个坑是怎么回事 (感觉很有可能是我经常vibe coding导致的),反正我因为这个我查了快一个下午。
不过最后问题还是顺利解决了awa。


使用ESP32S3驱动MAX98357和PCM5102有感
https://www.xcnahida.cn/?p=834MRLl0
评论