ESP32播放MP3音乐 您所在的位置:网站首页 arduino怎么放音乐 ESP32播放MP3音乐

ESP32播放MP3音乐

2023-12-24 20:14| 来源: 网络整理| 查看: 265

ESP32播放MP3音乐(无需SD卡和外置RAM) 无需SD卡,FLASH大小4MB,非常适合用于智能家居的语音提示或者在线播放音乐。 一般来说,一个语音提示文件的MP3格式的大小约5KB,而未压缩的wav格式的大小则为60KB左右。如果拿2MB的FLASH空间来存储MP3格式的语音提示文件,则其数量要远大于WAV格式。 wav格式或pcm格式是未压缩格式,ESP32可以直接播放的,无需解码 所需硬件:ESP32开发板(带32Mbit FLASH)、WM8978模块。 ESP32也可以使用内置的DAC来播放音乐,但据他人所言会影响其他资源的使用,故此处使用WM8978,同时也省去了一片功放芯片。

所用硬件 模块是某宝上买的,附送有资料,但除了I2C之外,其他的并不适用于ESP32。

1. 烧录我上传的固件文件(见文末)

烧录 完成烧录 完成烧录

2. 硬件连接 (WM8978) LRCK >>> (ESP32)GPIO 25 (WM8978) SCLK >>> (ESP32)GPIO 26 (WM8978) SDIN >>> (ESP32)GPIO 22 (WM8978) MCLK >>> (ESP32)GPIO 0 (WM8978) SCL >>> (ESP32)GPIO 15 (WM8978) MCLK >>> (ESP32)GPIO 14 模块3.3V供电,插入耳机。 3. 复位ESP32 复位后会循环播放固件里的MP3音乐,立体音。

串口

打开串口可以查看播放进度 划重点-代码实现流程: 1. 使用I2C协议来配置WM8978模块 2. 初始化ESP32的I2S通信接口 3. 建立数据缓冲,大于4096字节 4. 从FLASH读取一个扇区(4096字节) 5. 转为解码所需的stream比特流形式(本例子用的是开源的mad MP3解码库) 6. 开始MP3解码 7. 解码4096字节完成后,把PCM数据通过I2S送入WM8978模块 8. 重复第四步,直至结束

坑:注意MP3数据不要一帧一帧(一帧大小有几百字节)地解码-播放,这会导致奇怪的声音出现(解码出错)。

测试固件下载链接:https://download.csdn.net/download/DTXK1024/11972783

固件的下载积分我调整不了,如果你是需要某宝花钱买才可以下载CSDN的资源,那么可以私聊我或者评论里留下你的邮箱,我有时间会把资源发到你邮箱。

代码我整理后再放出 END


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有