查看: 17034
回复: 18
参赛作品《基于stm32的多功能GUI设计》
电子科技
1
主题
12
回复
发表于2017-06-09 16:12:45 | 显示全部楼层
1# 电梯直达

【报名阶段需要填写的内容】


1. 参赛者姓名(必填项):王维鋆


2. 单位或学校名称(必填项):四川航天职业技术学院


3. 当前职务或职称(必填项):学生


4. 参赛作品的名字(必填项):基于stm32的多功能GUI设计


5. 简要陈述您的idea和作品(必填项):采用stm32F1系列芯片为主控,暂时先运用UCOSII操作系统和ucGUI图形界面实现一个类似于跑平板电脑或手机的界面和各个功能,目前主要想到的功能有:查看图片,时钟显示,日历,待机唤醒,温度测量,MP3播放器播放音乐,以太网通信,设置桌面背景等,后期功能实现过程会更贴为证,这里只是一个大概的方向和框架.


6. 拟用到的立创商城在售物料(必填项):MCU芯片stm32f103zet6,温度传感器ds18b20,触摸芯片等


7. 拟用到的非立创商城物料或其它补充(必填项):时钟模块ds1302,液晶屏TFT9325,mp3解码模块vs1053,以太网ENC28J60模块,大容量SD卡等


【作品正式发表(报名成功后进入设计阶段)需要填写的内容】


一、作品简介

随着计算机技术、微电子技术和数字信号处理技术的迅速发展各类消费电子产品发生了革命性的变化引发新技术、新产品层出不穷。特别是随着网络多媒体技术的普及、数字音视频技术的快速发展以及多种视音频数据压缩标准和相应终端设备的相继问世已成为消费电子产品新的增长点。集成了MP3的优点,同时拥有MP3不具有的功能的消费类电子产品越来越受到消费者的青睐。


设计了一款基于STM32的多功能GUI设计,功能包括:MP3/WMA/WAV/MIDI音频文件播放器、JPEG/JPG/BMP图片浏览、闹钟、万年历、电子书、温度计、计算器功率放大等。

整个系统主要由音频解码部分、音效处理部分、SD卡部分、功率放大、电源部分、人机交互等几个部分组成,整个系统由一块MCU(STM32F103ZET6)控制运行,各个部分协调运作,人机交互部分采用LCD和触摸屏实现,输出部分采用2.8寸的240*320的彩色液晶实现,输入部分主要采用触摸屏实现.


采用触摸屏控制,可以方便的控制整个系统,使得整个系统的操作非常的人性化


整个系统涉及方面很多,颇具挑战性,主要难点在与FAT文件系统解析,JPEG/BMP数据格式解析,触摸屏控制等。针对本系统的特点,采用各个击破的方法,来一步步实现以上功能。最终实现整个系统的功能

  




二、系统构架图

  


三、硬件部分的描述

1.附上原理图&PCB实物图的图片或者源文件:STM32F103ZET6.PDF 

由于该多功能MP3要实现图片浏览和mp3播放这两大功能,对ram和处理速度的要求比较高,

其次,由于本系统要播放MP3音乐和JPEG图片等,而两种格式的文件往往比较大,所以存储媒介也就有要求.如果选择FLASH,则整个系统要求较多的IO口来读取,更重要的一点是,这样做的后果就是整个系统的容量就被固定了,U盘和SD卡都是不错的选择,但是SD卡相对于U盘,读取容易,而且相同容量的U盘和SD卡,SD卡的价格较低。所以系统选择SD小卡,即TF卡作为存储媒介。系统播放MP3要同时读取SD卡和VS1053,都要用到SPI口,所以控制芯片最好有两个SPI,这样不用复用,可以提高速度,所有,选择了STM32F103ZET6作为主控.
上面系统
方框图给出了各个模块与MCU的连接关系,从上面的方框图可以看出,整个系统以STM32F103ZET6为核心,通过控制各个模块的工作,使整个系统达到预定的功能。


 对软件而言,整个多功能GUI的软件系统涉及到很多方面,是一个比较复杂的系统,不可能一次把所有的代码都写出来。这里对软件代码的编写采用模块化的设计思想,将整个软件系统逐步划分为子系统,再将子系统逐步细化为单一功能的模块来实现,最后再将所有的模块整合成一个大系统,实现预期的功能。

软件模块化设计可分为2大类:1.与硬件相关的底层驱动软件子系统:LCD驱动模块、触摸屏驱动模块、SD卡驱动模块、VS1053驱动模块、CH340驱动模块、温度传感器驱动模块、时钟DS1302驱动模块、实时时钟驱动模块等。

2.与硬件无关的应用软件子系统:PEG/BMP解码模块、FAT文件系统管理模块、音乐播放模块、图片浏览模块、闹钟模块、时间模块、设置管理模块、电子书模块等模块。

当进行模块化程序设计时,我们首先要明确模块的功能作用,将其划分为一个个独立的功能模块,将其封装为函数,供给其他模块调用。底层驱动主要实现一些基本的底层功能,如硬件初始化、与硬件密切相关的时序函数等等。应用层实现整个软件系统的应用功能函数。


四、材料清单(BOM列表)

主控芯片:STM32F103ZET6   编号:C14508

传感器: DS1302           编号:C14334

         DS18B20          编号:C9753

         VS1053B          编号:C9922

存储器: AT24C02         编号:C8810

         W25Q128         编号:C110643

         IS62WV51216     编号:C11315



五、软件部分的描述(选填)

 全部程序和资料开源:多开功能GUI设计.rar 


六、作品演示

请上传您的作品的功能演示到腾讯视频,并编辑到本楼(或附上视频链接)


视频链接: https://v.qq.com/x/page/t0528yx54w5.html



七、总结


CM3构架的STM32对处理音频播放方面速度完全能满足要求,取得了良好的效果。STM32拥有丰富的资源,性能提升非常方便,基本不需要添加外部器件,可以通过软件升级来增加产品的功能。不过STM32的IIC却设计的不好,很难使用,而且不稳定

采用触摸屏控制,可以方便的控制整个系统,使得整个系统的操作非常的人性化。触摸屏控制是人机交互的必然走势,相信在以后,越来越多的产品会使用

芯片数据手册器件标注要注意,结合实际分析,才能正确的在最短时间里找到错误.多结合百度,谷歌等论坛,学会在网上收索资源.用中学,学中用.

我认为的亮点有MP3播放器可以实现后台播放音乐,且实现了可以检测状态自动待机模式和人为的低功耗待机模式.完成了一款满足一般功能的小型GUI设计.


通过此次设计,我了解了FAT文件系统、BMP/JPEG的解码方法以及触摸屏的工作原理,学会了IIC总线协议并且熟悉了CM3构架的STM32使用以及KEIL FOR ARM编译器的使用等很多软件和硬件方面的知识

本多功能gui基本上达到了预期的效果,但以太网通信暂时未用到

该多功能GUI设计虽然具有众多功能,但是,还是有很大的提升空间的,比如录音、画图、遥控,以太网联网,智能家居等,这些功能在智能家用的时候将会显得很实用,需要我后期的进一步完善.

最后,感谢立创社区的大力支持.



Sunshiner
0
主题
1
回复
发表于2018-03-06 20:19:35   |  显示全部楼层
19#
楼主,还在么,最近在做一个简单的操作界面,想有偿请教你

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部