OpenEdv-开源电子网

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

求助:我想在程序运行前就把MP3文件固化到STM32内部FLASH中,可以实现吗?

[复制链接]

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
发表于 2014-12-31 11:03:31 | 显示全部楼层 |阅读模式
5金钱
我想在程序运行前就把MP3文件 固化到STM32内部FLASH中,可以实现吗?如何实现?

最佳答案

查看完整内容[请看2#楼]

多大的MP3文件啊?STM32是可以的。我以前有把150K的图片固化到内部FLASH中。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11741
金钱
11741
注册时间
2013-3-8
在线时间
1252 小时
发表于 2014-12-31 11:03:32 | 显示全部楼层
多大的MP3文件啊?STM32是可以的。我以前有把150K的图片固化到内部FLASH中。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-12-31 12:47:10 | 显示全部楼层
利用串口或者SD卡,将MP3的数据写入flash即可
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2015-1-3 14:07:35 | 显示全部楼层
回复【2楼】augustedward:
---------------------------------
谢谢您的回答!
我的MP3文件有1M多。
我现在采用的办法是:先把MP3文件转换成数组,然后在程序中读取数组。
遇到的问题是:数组数据可以通过printf打印出来,但是声音却出不来。是不是数组有点太大了?
回复

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2015-1-3 14:10:17 | 显示全部楼层
回复【3楼】八度空间:
---------------------------------
必须要外扩SD卡吗?(我的MP3文件有1M多)在不增加硬件的条件下,有没有其他办法呢?
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11741
金钱
11741
注册时间
2013-3-8
在线时间
1252 小时
发表于 2015-1-3 19:54:31 | 显示全部楼层
回复【4楼】SSSA:
---------------------------------
1M多可以全部写到Flash中?你STM32用的哪款芯片啊?有2Mflash?
转换成数组后的格试对吗?音频解码芯片用的什么芯片?
大数组是可以通过烧程序的方式直接写进FLASH中。不过分散加载文件要修改。
回复

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2015-1-3 22:23:25 | 显示全部楼层
回复【6楼】augustedward:
---------------------------------
谢谢您的回答!
1、我用的是原子战舰版(STM32F103ZET6),数组的值可通过printf打印出来。(这个我也很不解,是不是片内FLASH用完了,直接写到片外FLASH中去了?求解答。。。)
2、MP3文件转数组,我是用winhex转的,转完后是unsigned char data_pw[32959] = {.......},这个应该没什么问题。
3、我用的是LD3320语言模块,它内部自带音频解码。
4、大数组通过烧程序的方式直接写进FLASH中,您是怎么做到的呢?麻烦您详细讲一下!
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11741
金钱
11741
注册时间
2013-3-8
在线时间
1252 小时
发表于 2015-1-4 11:22:59 | 显示全部楼层
回复【7楼】SSSA:
---------------------------------
32959是32K字节左右吧,哪儿有1M?数组定义时前面加const这个关键字。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-11-20
在线时间
0 小时
发表于 2015-1-19 10:50:24 | 显示全部楼层
我在STM32F407上做过这个,你要就下载看看吧。。。我把MP3代码放在dano.h里面,然后拷贝到flash里面。。。
Link => https://www.dropbox.com/s/hge09igyoi9ilzq/Play%20MP3%20Data%20from%20Internal%20Flash.zip?dl=0
自己看看吧,希望帮到你。。。
回复

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2015-1-21 16:21:45 | 显示全部楼层
回复【9楼】Kwan:
---------------------------------
太谢谢你了!
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-11-20
在线时间
0 小时
发表于 2015-1-22 12:27:45 | 显示全部楼层
回复【10楼】SSSA:
---------------------------------
Welcome =)
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-11-20
在线时间
0 小时
发表于 2015-1-22 14:13:53 | 显示全部楼层
回复【10楼】SSSA:
---------------------------------
对了,忘了提。我是用Keil开发的,你只要去MDK-ARM文件中用Keil打开就行了。只需重建然后下载就行了。如果你有自己的歌曲,就直接改掉dano.h里面的MP3代码就行了。
回复

使用道具 举报

8

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2014-8-3
在线时间
0 小时
发表于 2015-3-1 17:19:22 | 显示全部楼层
dropbox在国内被封杀,不能使用。。。。
电子技能就是我行走江湖时手中的利剑。
回复

使用道具 举报

13

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2015-12-13
在线时间
83 小时
发表于 2016-3-6 14:22:21 | 显示全部楼层
SSSA 发表于 2015-1-21 16:21
回复【9楼】Kwan:
---------------------------------
太谢谢你了!

你好,请问一下有代码吗?上面一楼给你的


我在STM32F407上做过这个,你要就下载看看吧。。。我把MP3代码放在dano.h里面,然后拷贝到flash里面。。。
Link => https://www.dropbox.com/s/hge09i ... al%20Flash.zip?dl=0
自己看看吧,希望帮到你。。。
专注于stm32,专注于嵌入式
回复

使用道具 举报

13

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2015-12-13
在线时间
83 小时
发表于 2016-3-7 11:07:56 | 显示全部楼层
请问可以请教一下你是怎么做的吗?最近在研究这个问题,也是讲一个wav文件经过winhex转的十六进制,怎么复制下来存放在数组里的啊?还有放在stm32内部的flash一定需要通过spi或者sd卡去读进去吗?
专注于stm32,专注于嵌入式
回复

使用道具 举报

23

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-7-12
在线时间
119 小时
发表于 2016-7-21 15:12:54 | 显示全部楼层
请问能分享一下上面给出的代码吗?那个连接打不开!
回复

使用道具 举报

23

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-7-12
在线时间
119 小时
发表于 2016-7-22 10:22:06 | 显示全部楼层
chicheng_smile 发表于 2016-3-6 14:22
你好,请问一下有代码吗?上面一楼给你的

能分享一下吗?链接打不开
回复

使用道具 举报

13

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2015-12-13
在线时间
83 小时
发表于 2016-7-29 14:57:51 | 显示全部楼层
莫问1990 发表于 2016-7-22 10:22
能分享一下吗?链接打不开

我也没打开
专注于stm32,专注于嵌入式
回复

使用道具 举报

23

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-7-12
在线时间
119 小时
发表于 2016-8-1 09:21:48 | 显示全部楼层
SSSA 发表于 2015-1-3 22:23
回复【6楼】augustedward:
---------------------------------
谢谢您的回答!
1、我用的是原子战舰版(STM ...

请问怎么用winhex将MP3文件转换成数组
回复

使用道具 举报

23

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-7-12
在线时间
119 小时
发表于 2016-8-3 15:15:41 | 显示全部楼层
augustedward 发表于 2015-1-4 11:22
回复【7楼】SSSA:
---------------------------------
32959是32K字节左右吧,哪儿有1M?数组定义时前面加c ...

为什么不加const,编译的时候出现内存不足的提醒?
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11741
金钱
11741
注册时间
2013-3-8
在线时间
1252 小时
发表于 2016-8-4 08:47:18 | 显示全部楼层
莫问1990 发表于 2016-8-1 09:21
请问怎么用winhex将MP3文件转换成数组

MP3的我没做过,图片的我做过!
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11741
金钱
11741
注册时间
2013-3-8
在线时间
1252 小时
发表于 2016-8-4 08:48:40 | 显示全部楼层
莫问1990 发表于 2016-8-3 15:15
为什么不加const,编译的时候出现内存不足的提醒?

不加CONST,编译时会把此数组当成全局变量,占用内存。加了之后,编译时会编译到FLASH,不占用内存
回复

使用道具 举报

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2019-12-5
在线时间
33 小时
发表于 2022-6-14 01:17:55 来自手机 | 显示全部楼层
Mp3开发
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 00:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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