分享以前做的毕业设计——基于STM32VET6的MP3、数码相框设计,有图有资料

2019-12-09 19:21发布

一年前做得毕业设计,当时题目是基于STM32VET6的数码相框设计,在制作的过程中参考了论坛中的以及网络中的许多的资料,尤其是正点原子童靴的分享资料,在后来的设计过程中又加入了一些好玩的并且自己当时可以实现的功能,最终完成了一个在当时自我感觉还挺有成就感的设计,这个设计从硬件电路设计、绘制PCB到软件编写调试并最终做出实物前后用了3个多月的时间,到临近答辩才完成,时间还是有些紧的,有些功能的软件还没有编写完成,比如无线传输、音乐播放中的歌词显示、录音机、一些操作设定的UI等,主要是临近毕业了,后来参加工作也在没动过了,以前总是默默的在论坛下资料、看强帖,这个论坛真的帮助了我许多,一直想要回馈却一直没什么拿得出手的设计,这个东东也是一开始就想分享出来的,不过之前一直想要完善了后在传吧,可是因为工作一直拖到现在也没空完善了,还是先分享了吧,当下也有不少坛友在做毕业设计,喜欢就拿去参考下吧,欢迎拍砖,哈哈!!!

    本设计是以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文件系统。好了不多说先上图。


开机logo (原文件名:开机.jpg)
恩,这是我的学校


系统主界面 (原文件名:主界面1.jpg)
有没有点山寨Iphone的感觉o(∩_∩)o...哈哈


系统主界面 (原文件名:主界面2.jpg)


音乐文件浏览 (原文件名:音乐文件浏览.jpg)
上下滑动可以翻页


音乐播放界面 (原文件名:音乐播放.jpg)
界面怎么样,参考了千千静听的皮肤


图片播放 (原文件名:图片播放1.jpg)
可以自动播放,暂停


图片播放 (原文件名:图片播放2.jpg)


电子书阅读 (原文件名:电子书.jpg)


4*4拼图游戏 (原文件名:拼图游戏.jpg)


游戏设置界面 (原文件名:游戏设定.jpg)


游戏最佳得分记录 (原文件名:游戏最佳纪录.jpg)


USB mass storage数据连接 (原文件名:USB mass通信.jpg)


指针式时钟显示 (原文件名:时间显示.jpg)
仔细看看,指针是透明的哦!


文件浏览 (原文件名:文件浏览.jpg)


触摸画板 (原文件名:随手画.jpg)


时间设定 (原文件名:时间设定.jpg)


校正触屏 (原文件名:触屏校正.jpg)


确定对话框 (原文件名:确定校正.jpg)


板子背部 (原文件名:背图.jpg)


本设计实现的主要功能描述:
    1.音乐播放,使用vs1003音频解码芯片,能支持大部分主流的音频格式,可以上一曲、下一曲,可以快退快进,播放界面是模仿了千千静听中的“炫紫神话”皮肤,界面的实现完全是通过软件绘制的方式,没有贴任何图片,为了实现那些层次阴影的效果,综合运用了颜 {MOD}渐变,颜 {MOD}叠加的方法,特别是那个圆形按钮花了不少时间,大家看看是不是还有点立体感呢,在界面中也显示了频谱,不过频谱数据是从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供电了。


(原文件名:电路原理图1.JPG)


(原文件名:PCB图.JPG)

用Keil MDK打开ourdev_720591N4VQNO.rar(文件大小:452K) (原文件名:STM32VET6_9481v1.rar)

点击此处下载 ourdev_720592Q98O5V.pdf(文件大小:1.88M) (原文件名:毕设电路.pdf)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
98条回答
skynet
1楼-- · 2019-12-09 21:51
是UCOS吗?
hnsq
2楼-- · 2019-12-10 01:21
回复【楼主位】hnsq
-----------------------------------------------------------------------

快来顶啊!自己先顶顶!o(∩_∩)o...哈哈
hnsq
3楼-- · 2019-12-10 05:22
没用操作系统,有空了再改吧!
wangguanfu
4楼-- · 2019-12-10 08:16
 精彩回答 2  元偷偷看……
.titrwh
5楼-- · 2019-12-10 09:20
没有操作系统搞这么多花样,NB!
voval
6楼-- · 2019-12-10 14:28
mark~

一周热门 更多>