这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » STM32+WT2605C蓝牙音频芯片开发实战

共2条 1/1 1 跳转至

STM32+WT2605C蓝牙音频芯片开发实战

助工
2026-07-30 15:11:07     打赏

去年接了个活。STM32 做主控,外壳里要能连手机放语音、播提示音。我一开始打算自己上蓝牙协议栈,搞了两周,广播都立不起来。后来换了思路,主控只管业务,蓝牙音频那摊子丢给一颗 WT2605C,三天出了样机。

下面把我这套 STM32 配 WT2605C 的接法捋一遍,省得你踩我踩过的坑。

说真的,STM32 很强,但它不是为啃蓝牙音频协议栈生的。你让它跑业务逻辑、扫按键、刷屏、收传感器,已经够忙了。蓝牙配网、A2DP 解码、功放驱动这些,硬塞进去就是给自己找不痛快。

WT2605C是WT2605系列里的蓝牙音频芯片,它把这堆活全收了。STM32 和它对上串口,发几个字节它就明白要播哪段、音量多大。主控干干净净,蓝牙那层被封装到对面去了。

我能用上的就这几样。双模蓝牙 5.0,经典音频 BR/EDR 和 BLE 都带。串口是标准 UART,115200 波特,3.3V 的 TTL 电平,跟 STM32 直接对插。存储也省心,SPI Flash、TF 卡、U 盘三种都能挂,FAT 格式,热插拔。那个 USB 口顺手干了四件事,挂 U 盘播、当读卡器拷文件、升固件,还能当免驱声卡。

硬件怎么连。WT2605C 的 UART 和 STM32 的 USART 交叉接,STM32 的 TX 接 WT2605C 的 RX,反过来一样。两边共地,电压都 3.3V,别拿 5V 去怼,会冒烟。晶振用 26M、11pF 负载、误差 ±10ppm,随便找颗料可能就不稳,这点后面专门说。

上电之后 WT2605C 会自己吐一帧返回码,7E 04 01 00 05 EF,串口助手开着就能看到。看到这串,说明通信通了,心里就有底了。

想让它放歌,STM32 发一条索引播放指令过去。我用 Flash 索引播放举例子,命令码是 A0,帧长 04,后面跟曲目序号。校验位别手填,让程序把前面字节累加取低八位算出来。

下面这段是 STM32 上跑的 HAL 代码。

uint8_t wt_sum(uint8_t *buf, uint8_t len) {

uint8_t s = 0;

for (uint8_t i = 0; i < len; i++) s += buf[i];

return s;

}

 

void wt_play(uint8_t index) {

uint8_t f[7];

f[0] = 0x7E;

f[1] = 0x04;

f[2] = 0xA0;

f[3] = 0x00;

f[4] = index;

f[5] = wt_sum(&f[1], 4);

f[6] = 0xEF;

HAL_UART_Transmit(&huart2, f, 7, HAL_MAX_DELAY);

}

调通以后你会发现,这方案舒服的地方在 STM32 不用碰蓝牙协议栈一行,参数漂不漂亮反倒次要。业务代码里调一个 wt_play(1),第一首就放出来了,干净。

玩熟了还能整点花的。BLE 那边留了数传通道,UUID 是 00010203 开头那串,手机 APP 写数据进去,WT2605C 从串口吐给 STM32,反过来 STM32 发的数据也能推到手机。做带蓝牙的语音播报器、玩具对讲,这套透传直接能用。按键和红外控制能定制,固件还能用 U 盘升级,画板时把 USB 留出来就行。

两个坑我得专门点出来。声卡模式跟蓝牙播放是互斥的,声道被占着,用声卡就得先断开蓝牙,不然蓝牙那边没声音。晶振也得用对,26M、11pF、±10ppm,我第一版随便焊了颗晶振,连上手机断断续续,换了指定料才稳。

命令码和曲目映射这块,我建议直接翻 V1.08 手册第五章,别凭记忆填。不同存储区的索引规则不一样,踩过一次就知道了。

要是你也在搞 STM32 配蓝牙音频,资料包和开发板我这能领。想动手的直接要一份 V1.08 手册对着看,群里一大帮人也在玩,遇到问题吼一声基本都有人回。





关键词: STM32+WT2605C     蓝牙     音频     芯片     开发    

院士
2026-07-30 17:19:16     打赏
2楼

谢谢分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]