yanggexiaosa 发表于 2012-9-24 13:19:58

51+PFATFS+VS1003+12864=MP3第一个处女非求救帖

本帖最后由 yanggexiaosa 于 2012-9-25 08:42 编辑

买了个STM32的实验仪,由于种种原因被别人拿去用了。加上再过上1个多月就得实习了,想尽可能的多储备点知识呀。所以重新买了个ARM实验仪。但发货到收货得好多开呢,也不知道做点什么,看到上届学长留下的一个VS1003模式就想着能干点什么。
好了不费话了,MP3我花了三天的时间。实验仪到了所以就不再继续做下去了。界面特别的丑,没时间优化了望各位大大们务喷啊。

界面没什么好说的就那死样了,主要功能有顺序播放、单曲播放、随机播放、下一首、上一首、选歌等,没有实现时间进度条和能量条的显示。就三天,这三天还有课的不说。所以仍旧望海涵。

MP3移植了较为小巧的PFATFS,使用的STC11F32XE增强单片机,24Mhz晶振。可以解码320Kbps(再大的没测过,没找到这样的歌{:cry:} )。由于没有实现文件写功能所以使用了24c02更新播放列表。再由于24C02只有256个字节说以只能播放16首歌。(刚开始我以为是256K的呢,算了下可以播放1.6万首歌呢,叹)后来想用STC他所谓的内部EPPROM来更新播放列表(毕竟大呀)但是移植性差。所以如果自己想搞的话可以自己实现文件系统的写就可以播放任一多的歌曲的。但我不知道有没有更好的解决方案。使用红外操控。也因为这个在操作时会有杂音,未能解决,有木有人告诉我怎么解决呢?我好在学习STM32中解决一下。代码在下面提供,有很多地方需要优化。我自己知道可以优化的地方也不少。但限于要实习了就先不管了。。

这下真不费话了,还有事呢。哈哈。上传图片


http://v.youku.com/v_show/id_XNDUzODc4NTcy.html


简单的拍了个小视频。好了算了事喽。

yanggexiaosa 发表于 2012-9-24 13:25:13

楼主座就先自己占着。这个是代码,由于等级低资料大传不了。所以先传点,如果有人需要FATFS、VS1003、SD卡我资料的话我继续传。

little_Monkey 发表于 2012-9-24 13:27:27

我是冲着“第一个处女”来的。。

raxb 发表于 2012-9-24 14:12:17

little_Monkey 发表于 2012-9-24 13:27 static/image/common/back.gif
我是冲着“第一个处女”来的。。

在哪呢,现在还是吗?

maxims 发表于 2012-9-24 15:23:57

{:shy:}我是冲楼主资料来的。

lovely-teddy 发表于 2012-9-24 17:36:32

楼主太有才了

beijinggood2008 发表于 2012-9-24 23:28:21

我也想发个处女贴,但是作品太拙劣,不敢拿出来,还是LZ的强!帮顶!

MCUStudent 发表于 2012-9-25 21:23:33

LZ强大,以下,学习,辛苦,谢谢!

xiaoguo1 发表于 2012-10-2 17:28:35

好贴 受益匪浅

ksws0482846 发表于 2012-10-2 17:35:45

界面挺费时间的,这样不错了

3050311118 发表于 2013-7-6 23:14:39

这个一定要顶

wkman 发表于 2013-7-8 09:11:06

st7920
并行{:shocked:}

mvpgpz 发表于 2013-7-8 12:11:18

记得几年前自己用的好像是STC89C52RC的片子没有做好这个mp3实验,当时自己写的文件系统和sd卡读写,貌似当时是因为sd卡的读写速度达不到,放出来的音乐超级慢,跟民国时代的点唱机放出来的声音似的!后来改用arm7(周立功的lpc系列)做的效果很不错。当时自己没有做好处理长文件名的程序。程序应该在陪伴了自己七年的本本里,但是现在已经不能开机了...有想要的朋友跟我说,我想办法把硬盘接出来拷一份。

yanggexiaosa 发表于 2013-7-11 20:25:09

wkman 发表于 2013-7-8 09:11 static/image/common/back.gif
st7920
并行

哇,今天看看还有人回复,是并行口,是什么控制器就没太关心了。

yanggexiaosa 发表于 2013-7-11 20:26:20

mvpgpz 发表于 2013-7-8 12:11 static/image/common/back.gif
记得几年前自己用的好像是STC89C52RC的片子没有做好这个mp3实验,当时自己写的文件系统和sd卡读写,貌似当 ...

哈哈,我本来也自己读写文件系统的。但是走到一半总是死机,也仿真不出来,所以就放弃了。

SCREA 发表于 2013-10-9 10:13:03

本帖最后由 SCREA 于 2013-10-9 10:15 编辑

yanggexiaosa 发表于 2013-7-11 20:26 static/image/common/back.gif
哈哈,我本来也自己读写文件系统的。但是走到一半总是死机,也仿真不出来,所以就放弃了。 ...if(pf_mount(&Fatfs)==FR_OK)
                                        {
                                                if((pf_opendir(&dir,"Music"))==FR_OK)
                                                {
                                                //        put_string("??");
                                                        if(pf_open(ss)==FR_OK)
                                                        {
                                                                put_string("??");
                                                                VS1003B_XCS_H();       
                                                                while(1)
                                                                {       
                                                                       
                                                                       
                                                                        VS1003B_XDCS_L(); //数据片选
                                                                        if(        pf_read(SD_buf,512,&read_word_num)==FR_OK)
                                                                        {       
                                                                                for(k=0;k<512;k++)
                                                                                {
                                                                                        VS1003B_WriteDAT(SD_buf);
                                                                                }
                                                                        }
                                                                        VS1003B_XDCS_H();
                                                                }
                                                        }//else         put_string(str6);
                                                }
                                        }=====================
请问楼主,我执行到可以打印“??”,表示文件打开成功。但怎么也音乐不响。
我怀疑是不是pf_read(SD_buf,512,&read_word_num)这个有问题,我的意思是说它读一首歌曲的时候读完一个扇区,指针自动继续+1,读另一个512字节的扇区。知道这个文件结束。比如这首歌曲叫“花心“。



备注:我的Vs1003没问题,没移植pfat的时候直接读取8200扇区后面的数据能出歌曲。
粘上来老是偏移严重,抱歉了

SCREA 发表于 2013-10-10 13:23:38

yanggexiaosa 发表于 2013-7-11 20:26 static/image/common/back.gif
哈哈,我本来也自己读写文件系统的。但是走到一半总是死机,也仿真不出来,所以就放弃了。 ...

快进、快退你用过        if(flag_fastforward==1){ pf_lseek(Fatfs.fptr+1000);flag_fastforward=0; }???????????

SCREA 发表于 2013-10-10 14:51:39

“等你爱我.mp3”可以,但是超出4个字怎么办?
快进、快退。。。。。lseek不灵光啊

zkaifa 发表于 2014-11-19 16:29:08

楼主太有才了,同发
页: [1]
查看完整版本: 51+PFATFS+VS1003+12864=MP3第一个处女非求救帖