OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 25114|回复: 11

stm32 helix软件解码MP3,适合没有VS1003超级高富帅解码芯片的兄弟

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-12-8
在线时间
0 小时
发表于 2013-8-22 22:24:03 | 显示全部楼层 |阅读模式
用的是 stm32F407Discovery 168M  带I2S接口(裸奔)
由于Discovery自带一颗CS43L22 音频DAC,放着也浪费,就移植Helix,来软件解码MP3。
解码320kbs的MP3文件没什么问题。

 




这是官方的资源占用



这是实际编译没有优化0的资源占用

适合没有牛x的vs1003解码芯片,有颗强大的mcu的,都可以试试。

7b610b72b2a15bbb4abfbaf732f8ff4d.pdf

1.27 MB, 下载次数: 2666

STM32F407 - HelixDecodeMP3.zip

10.75 MB, 下载次数: 13561

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-22 22:39:24 | 显示全部楼层
回复 支持 反对

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2013-8-16
在线时间
2 小时
发表于 2013-8-22 23:32:57 | 显示全部楼层
哇,刚好1003效果不佳,刚好手里有块407,试试。
心若在 梦就在
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-12-8
在线时间
0 小时
 楼主| 发表于 2013-8-23 10:52:21 | 显示全部楼层
自己小顶顶
回复 支持 反对

使用道具 举报

13

主题

202

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2012-10-27
在线时间
65 小时
发表于 2013-8-23 14:04:42 | 显示全部楼层
CS43L22 音质怎么样?
Discovery板刚出的时候我很关注他的音质,因为对HiFi感兴趣,但据说也不是很好
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-12-8
在线时间
0 小时
 楼主| 发表于 2013-8-23 20:51:16 | 显示全部楼层
回复【5楼】arm51avr:
---------------------------------
音质还行吧,听不出和电脑的差别。
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-9-15
在线时间
0 小时
发表于 2013-9-15 00:52:49 | 显示全部楼层
回复【楼主位】暮雨微凉:
---------------------------------
楼主的代码很有参考价值。我试了一下。发现歌曲播放速度明显偏慢,音调也不对,请问这怎么解决
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2013-9-15 09:38:53 | 显示全部楼层
回复【7楼】凌晨一点:
---------------------------------
I2S LL需要调整。原厂是48khz采样率,你需要自行调整为适合44.1k的I2S LL
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-9-15
在线时间
0 小时
发表于 2013-9-15 10:16:21 | 显示全部楼层
回复【8楼】ricefat:
---------------------------------
嗯,楼主操作DAC的代码应该是参考官方例程的,
有一个函数
void AduioPlayer_Init(uint32_t AudioFreq)
{

   I2S3_Init(AudioFreq); 
}

他应该能自动根据MP3文件来初始化IIS 的PLL吧
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-9-15
在线时间
0 小时
发表于 2013-9-15 17:52:46 | 显示全部楼层
回复【8楼】ricefat:
---------------------------------
解决了。的确是这个问题。原厂在system_stm32f4xx.c这个文件中初始化了IIS的时钟  

        LLI2S_N                               | 192
  *-----------------------------------------------------------------------------
  *        LLI2S_R                               | 5
  *-----------------------------------------------------------------------------
  *        I2S input clock                        | 38400000
把PLLI2S_N  改成221 就可以了
回复 支持 反对

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6559
金钱
6559
注册时间
2018-6-27
在线时间
552 小时
发表于 2021-1-28 09:27:37 | 显示全部楼层
谢谢分享,学习学习。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-8-19
在线时间
4 小时
发表于 2021-7-1 01:00:58 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 07:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表