基于STM32的多功能MP3设计
队伍成员介绍:
宋宇:主要程序编写;fficeffice" />
张君易:资料搜集,程序思路设计
齐翔:程序思路设计,ppt及文档制作
一、作品简介
(1) UCOSII操作系统移植成功;
(2) 文件系统移植成功;
(3) 能够进行音乐播放,音质较好:并且能够后台运行,低音效果好配有中英文歌词同步显示。
(4) 能够进行中、英文及特殊字符显示;
(5) 良好的GUI设计,支持音乐频谱显示;
(6) 实现了图片浏览(BMP、JPG、GIF格式),电子书(TXT、LRC格式)的扩展功能。
(7) 实现了无SD卡启动系统的功能。
(8) 支持触摸屏和按键操作
(9) 支持长文件名的打开
硬件资源介绍
考虑到成本以及现成资源问题,本系统采用自备现有的STM32F103ZET6开发板,涉及到本系统的开发板模块资源如下:
CPU:STM32F103ZET6,LQFP144,FLASH:512K,SRAM:64K;
外扩 SPI FLASH:W25Q64,8M 字节
1 个电源指示灯(蓝色)
2 个状态指示灯(DS0:红色,DS1:绿色)
1 个 EEPROM 芯片,24C02,容量 256 字节
1 个高性能音频编解码芯片,VS1053
1 个标准的 2.4/2.8/3.5 寸 LCD 接口,支持触摸屏
1 个 SD 卡接口(在板子背面,支持 SPI/SDIO)
1 个标准的 JTAG/SWD 调试下载口
1 个 VS1053 的 IIS 输出接口
1 路立体声音频输出接口
1 个启动模式选择配置接口
1 个复位按钮,可用于复位 MCU 和 LCD
1 个电容触摸按键
1 个电源开关,控制整个板的电源
除晶振占用的 IO 口外,其余所有 IO 口全部引出
二、设计思路流程及程序工作流程
三、作品图片
1、主界面
2、功能展示
PS:由于时间仓促,视频转码出现错误而没有重新录制,所以没上传视频,谅解谅解
四、说明
遇到的问题:
1、液晶显示时的错乱以及触摸屏识别错误,一开始甚至液晶只有背光显示。检查了GPIO的复用端口,并检查了GUI驱动接口函数。
2、电容触摸按键的触摸不灵敏,修改定时器以及进行多采求平均。
3、FATFS移植多次失败,一开始是没有进行底层配置,后来发现没有分配内存,新增了内存分配的函数。
4、GUI与FATFS和APP联调的时候很难调,浪费了很多时间。只有慢慢一步一步检查。特别是GPIO的配置与复用。
5、无法启动系统、执行APP的时候卡死。系统文件缺失、内存分配不足、打开系统文件失败造成。增加开机自检,保证进入程序后系统文件完整无错。程序运行流畅、不死机。
心得:
第一次参加以软件为主的比赛,初涉STM32,靠原子哥的例程一步步学习。我们本着学习的态度参加比赛,程序主要移植于原子哥的例程。
在移植过程中,出现许多坎坷。特别是GUI部分,一开始移植ucGUI成功,但在移植电子书和图片浏览功能时,原子GUI与ucGUI发生冲突,于是放弃了ucGUI,后来因为按键ADC问题导致芯片烧毁,重新焊了块上去。当发现好高骛远不对时,我决定先将例程吃透,再进行移植。本着不吃透绝不移植的原则,时间有限,最后只弄出来3个功能,而滑屏和NES移植等因没吃透而没有进行盲目移植。
目前我们大二,还有两年时间可以学习。在硬件和电路设计基础上,软件设计学习也不放松。从库函数到寄存器慢慢吃透。先做好底层程序设计,再学习上层操作系统和界面设计。无论是ARM还是FPGA,我相信毕业时我们能在电子设计上有所建树。
最后说句:
感谢正点原子例程与学习资料,柯南大侠GUI(虽然最后没用到,但学到很多),星翼公司提供的比赛平台,开源电子网提供的学术交流平台!
|