在线时间198 小时
UID3112506
注册时间2016-7-8
NXP金币0
TA的每日心情 | 开心 2021-4-13 21:11 |
---|
签到天数: 550 天 连续签到: 1 天 [LV.9]以坛为家II
金牌会员
 
- 积分
- 2417
- 最后登录
- 2022-6-16
|
本帖最后由 踏平幼稚园 于 2017-8-6 22:39 编辑
修改过程:
1.基于官网sdk的i2s_dma_transfer例程;
2.修改pin_mux.c的io引脚映射配置,详见代码(注释没有改,有的和引脚不对应);
3.解决官方sdk2.2.1中i2s_dma一各bug(中断相关),改法:写了一个不带中断使能的DMA_StartTransfer,函数名DMA_StartTransfer_I2S;
4.添加mp3解码库(解码库来自社区提供);
5.添加sd卡驱动及fatfs库;
6.解决堆栈溢出问题;
播放方法:
mp3拷贝到sd卡,修改mp3_dir为mp3路径+文件名(建议英文,中文没试);
已知问题:
1.音频44.1Khz播放速度比正常速度快,修改时钟mclk=sys_pll(44.1Khz*16*16*2),i2s_tx=(sys_pll/16)没效果,但是i2s_tx的时钟分频加1会改善,原因未知;
2.因sd卡读没有使用DMA+双缓冲区,所以单缓冲区过大会导致单次读时间过长,音频出现卡顿情况,4KB缓冲区则没有明显延迟;
代码:
mp3.zip
(937.94 KB, 下载次数: 66)
|
|