connor 发表于 2012-4-18 22:46:06

wave 播放器:ucos+fatfs+ucgui: TQ2440


以前都是下载网站的资料,今天自己也贡献一点微薄之力。
自己花一周时间写得一个简易wave播放器,基于ucos、fatfs和ucgui,用了天嵌的2440板子。程序比较简陋,见笑了。
不少人可能也写过,这个纯属原创,仅供学习,谢谢大家。

jade1988 发表于 2012-4-18 23:11:32

linux+yaffs+qt
解码移植madplayer也可以玩玩{:loveliness:}

hamipeter 发表于 2012-4-19 00:26:04

不错啊,顶一下

connor 发表于 2012-4-19 10:02:27

jade1988 发表于 2012-4-18 23:11 static/image/common/back.gif
linux+yaffs+qt
解码移植madplayer也可以玩玩

下一步想完善一下,另外把mp3解码也移植上,然后就上linux,呵呵。

zm1990 发表于 2012-5-7 17:02:54

您好!
我在对其进行修改扩展时,发现不能进行写操作,读操作正常!
后发现是SD卡的写部分的问题,请问您是否有遇到此问题?
如何解决?谢谢!

ljt80158015 发表于 2012-5-7 17:05:22

无图无真相。

connor 发表于 2012-5-8 14:07:47

zm1990 发表于 2012-5-7 17:02 static/image/common/back.gif
您好!
我在对其进行修改扩展时,发现不能进行写操作,读操作正常!
后发现是SD卡的写部分的问题,请问您是 ...

写操作我没用过,肯定还得改的,之前我没用得上写操作,所以一直没怎么动。我估计时擦除那里的问题,你看看sd卡的资料。

huyang27 发表于 2012-5-10 14:40:14

谢谢,楼主好人

commshare 发表于 2012-5-13 10:00:42

学习了。。

liubinghui 发表于 2012-6-1 15:40:26

谢谢了。

xuehui869 发表于 2012-6-22 12:08:36

怎么编译不过去

xuehui869 发表于 2012-6-22 12:13:43

MAKE工程文件时有error,

Error : Q0108E: Could not create output file
解决办法:

到Debug setting里面,选中ARM fromELF,然后将Output file name 内容删除(或者填入你需要的路径),单然后点击OK退出,重新make,就不会有这个问题了。

xuehui869 发表于 2012-6-22 13:11:14

4.3寸的屏怎么改,改哪些地方,楼主的程序对应的是3.5寸屏

zhenghaiyang 发表于 2012-7-24 15:25:52

谢谢楼主!学习了

zhenghaiyang 发表于 2012-7-26 17:02:27

我用楼主的代码,发现单独的多块读写时没有问题的,但是用了楼主的移植代码后,读文件没有问题,写文件就出问题了。找到了要写的文件了,但数据被写在别的扇区了,请问楼主你的写操作解决了吗?

connor 发表于 2012-7-30 11:27:53

zhenghaiyang 发表于 2012-7-26 17:02 static/image/common/back.gif
我用楼主的代码,发现单独的多块读写时没有问题的,但是用了楼主的移植代码后,读文件没有问题,写文件就出 ...

好久没进论坛了,就没看回复。
写那里我用到了预擦除指令ACMD23,先别用,然后每次只写一块,把fatfs的diskio.c中的写函数改改,再试试吧。预擦除指令我之前调试时就不怎么灵。

connor 发表于 2012-7-30 11:32:09

xuehui869 发表于 2012-6-22 13:11 static/image/common/back.gif
4.3寸的屏怎么改,改哪些地方,楼主的程序对应的是3.5寸屏

得把ucgui移植那部分的配置文件这种的屏幕大小、触摸屏的四个点ad值改改,然后绘图函数那里一看看有没有设计屏幕大小的数字(320和240),改改吧。其他应该没什么问题了。

zhenghaiyang 发表于 2012-7-30 13:29:28

connor 发表于 2012-7-30 11:27 static/image/common/back.gif
好久没进论坛了,就没看回复。
写那里我用到了预擦除指令ACMD23,先别用,然后每次只写一块,把fatfs的di ...

谢谢楼主的回复!现在我基本把写文件的问题解决了。我是这么做的:一、把楼主的程序的diskio.c的sector地址改为了SD卡的字节地址,加入的语句是:SectAddress=sector<<9,因为我看到相关的文档,说read/write SD卡要用字节地址;而楼主用的是扇区地址;二、在sdi.c中 的Write_Mult_Block()和Write_Mult_Block()函数的写字节部分加入了一定的延时,while(i<DatSize){status = rSDIFSTA;if((status&0x2000)==0x2000){rSDIDAT = *pDat;pDat++;i++;} SD_Delay(20);}。

connor 发表于 2012-7-30 17:23:17

zhenghaiyang 发表于 2012-7-30 13:29 static/image/common/back.gif
谢谢楼主的回复!现在我基本把写文件的问题解决了。我是这么做的:一、把楼主的程序的diskio.c的sector地 ...

恩,原来我和你用的SD卡不一样,我的是SDHC,大容量SD卡,你的应该是标准SD卡。SDHC只用扇区寻址,标准的可以字节寻址。不过你加了延时,这个我倒是没考虑到,学习啦。

无极 发表于 2012-8-28 23:20:14

顶一下,good

huang11long 发表于 2012-10-2 20:22:17

楼主想问一下,回调函数写好就放那就行么,系统是在事件发生时自动调用么

liupeng08305 发表于 2012-10-3 11:09:32

mark!{:smile:}

huang11long 发表于 2012-10-4 20:12:36

楼主我想问一下,回调函数自定义消息WM_TOUCH_DOUBLECLICK,这个怎么用啊,怎么实现的双击效应啊,

jweih 发表于 2013-1-16 10:07:00

connor:你好!最近在玩TQ2440的wav播放,看到你的程序,有个疑问想请教:1、如你在程序中提到的,DMA比较难用,而我的问题是,用文件系统读取wav数据后,通过DMA传输,进行播放,这时耳机出来的是杂音,如果我不使用文件系统,把wav数据数组化,是可以放音的。你的程序中DMA传输是怎样实现的。
页: [1]
查看完整版本: wave 播放器:ucos+fatfs+ucgui: TQ2440