基于STM32VET6的MP3,数码相框

 2 E币 
成为会员,免费下载资料
文件大小:1.88 MB 上传者:kingkong 时间:2013-12-23 22:13:29 下载量:8
以STM32VET6作为主控制器,外围辅以3.5寸TFT液晶、SD卡、VS1003音频解码器、spi flash、AL422 FIFO Memory、XPT2046触摸IC、pl2303 USB转串口IC等,实现了一个功能丰富的小设备。本设计中使用的TFT作为显示单元,屏是3.5寸的分辨率320*480,控制IC为ILI9481,通过STM32的FSMC总线与系统相连,写屏速度还是挺快的,如果有片大RAM做显存,通过DMA总线操作的话就更快了,不过之前没考虑到啊!使用SD卡作为数据存储,这里充分利用片子的优势,用得是SDIO接口,比SPI快多了,能够支持FAT16/32文件系统。好了不多说先上图。

实现的主要功能描述:
    1.音乐播放,使用vs1003音频解码芯片,能支持大部分主流的音频格式,可以上一曲、下一曲,可以快退快进,播放界面是模仿了千千静听中的“炫紫神话”皮肤,界面的实现完全是通过软件绘制的方式,没有贴任何图片,为了实现那些层次阴影的效果,综合运用了颜色渐变,颜色叠加的方法,特别是那个圆形按钮花了不少时间,大家看看是不是还有点立体感呢,在界面中也显示了频谱,不过频谱数据是从vs1003中读取的,好像不怎么准确的,不过也将就了。(注:EQ、LRC功能没实现,所以那两个按钮也是无用的)
    2.图片播放部分主要是一直正点原子的代码,能支持BMP、JPEG图片的显示。在选中播放功能后显示进入文件浏览界面,界面中只会显示需要播放的文件格式与文件夹,比如进入图片播放的文件浏览界面中,就只会显示可以打开的图片与文件夹,其他功能也是一样。另外在文件浏览中,可以通过上下左右滑动触摸来翻页的。
    3.电子书阅读功能,可以打开常见的文本文件,如.txt、.lrc、.c、.h,系统中集成了GB2312字库,有12*12、16*16、24*24三种大小,它们被存储在一片SPI FLASH中,型号是EN25F16。
    4.照相机功能,这个没有实现完成,可以将摄像头的数据取来并实时显示在TFT屏上,但不能保存照片,可以支持ov7670和ov7725两种摄像头,摄像头是通过AL422 FIFO与MCU接口的,图像数据先进FIFO中,然后MCU根据场中断开始提取数据,可以刷个4~5帧吧,具体没测,由于现在手头上没摄像头了,没有上这部份功能的图,但程序中是有这部份功能的。
    5.拼图游戏这部份是移植的网络中的代码,不过实现起来也不难,比较容易理解,游戏分3个难度等级,3*3、4*4、5*5,也没太多可说的,看图吧。
    6.时间显示部分实现了一个指针式的时钟,这里的表盘是图片了,因为软件画的话比较麻烦,指针的绘制参考了ucgui中画多边形的代码,并且使用了透明效果,指针遮挡部位下面的文字图案依然能看到的。温度采集用得是片内的线性温度传感器,温度偏高了,不过硬件上预留了DS18B20的位置,暂未使用。
    7.触摸画板功能可以实时显示在触屏上画下的线条,这个功能比较简单了,不过也有待完善。
    8.文件浏览跟前面提到的进入播放功能后打开的浏览界面是一样的,只是这里不分文件格式了,任何格式的文件都会显示,方便查看。
    9.系统设定部分提供了一些设置系统参数的接口,如日期时间设定、触摸校正,还有一些设置没完成。
    10.USB设备功能,STM32自带了一个USB2.0设备接口,可方便的实现一些USB传输功能,本系统通过USB与计算机连接,可以枚举成USB mass storage和HID Mouse两种设备,mass storage功能实际就是将系统枚举为一个U盘了,可以方便通过计算机管理系统SD卡中的文件,速度不很快,200~300KB左右,板子背部有个LED可表示USB的读写状态,HID Mouse就是将系统枚举为一个鼠标了,通过在触屏上滑动,点击控制计算机上鼠标指针的行为,不过由于电阻屏的特点,我也没仔细写代码,使用效果不好,不过USB通信这块是完善的,另外本设计中还加入了一片pl2303 USB转口芯片,该芯片传出串口与STM32的UART1相连,可方便的通过串口下载程序,或打印log调试信息等。

    在做这个毕业设计中,硬件的设计当时考虑了很多,其实还预留了一些功能,比如MIC、IR,不过暂时未使用,电源部分,将TFT供电与其他部分的供电隔开了,是各自单独用了一片稳压IC的,而且各部分的供电是可以通过左侧边的几个排阵控制的,这里还引出几个未用的引脚供试验用,另外为了充分利用这块板,TFT所有的引脚通过左上边的一个座子引出了,可以单独去使用这个TFT,由于供电是隔开的,所以不必担心其他部分的干扰,也不会给板上的STM32供电。

    啊!终于写完了,下面发程序电路,程序使用Keil MDK编的,程序的实现没操作系统,没移植现成的GUI,参考了正点原子的代码,(这里要说声谢谢!)总的来讲,代码写得有些乱了,坛友们就将就着看吧!哈哈!对了,硬件上有个bug,就是VS1003的2.5v供电,图上的设计是用3.3v电压经稳压得到,实际上由于所用的稳压IC压降超过1v了,所以稳压后只剩2.2v多点了,应改为4v以上降压才好,我的板上就是飞线用得5v电压给2.5v稳压IC供电了。
展开
折叠
731
评论
共 0 个
内容存在敏感词
    易百纳技术社区暂无数据
相关资料
关于作者
易百纳技术社区
kingkong
贡献资料 12
易百纳技术社区 我上传的资料
登录查看
我赚取的积分
登录查看
我赚取的收益
登录查看
上传资料 赚取积分兑换E币
易百纳技术社区
删除原因
广告/SPAM
恶意灌水
违规内容
文不对题
重复发帖
置顶时间设置
结束时间
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-资料模块

审核失败

失败原因
备注
易百纳技术社区