本帖最后由 正点原子 于 2013-5-17 23:39 编辑
第六十一章 战舰STM32开发板综合实验 前面已经给大家讲了55个实例了,本章将设计一个综合实例,作为本指南的最后一个实验 ,该实验向大家展示了STM32的强大处理能力,并且可以测试开发板的大部分功能。该实验代码非常多,涉及GUI(ALIENTEK编写,非ucGUI)、UCOS、内存管理、图片解码、MP3播放、文件系统、USB、IAP、NES模拟器、手写识别、汉字输入等非常多的内容,故本章不讲实现和代码,只讲功能,本章将分为如下几个部分: 61.1 战舰STM32开发板综合实验简介 61.2 战舰STM32开发板综合实验详解
61.1 战舰STM32开发板综合实验简介 战舰STM32开发板是ALIENTEK的第二款STM32开发板(第一款是MiniSTM32开发板),它的出现,主要是为了弥补Mini板在一些应用上的缺陷,提供大家一个更强大的STM32开发板平台。 战舰STM32开发板的硬件资源在第一章我们已经详细介绍过,是十分强大的,强大的硬件必须配强大的软件才能体现其价值,如果IPhone装的是andriod而不是ios,IPhone就不是那个IPhone了,可能早就被三星打败了。同样,如果开发板只是一堆硬件,那就和一堆废品差不多。 战舰STM32开发板的硬件在V1.0版本的时候(2010年12月份),基本就定型了,之后近2年多的时间,我们一直在编写代码,其中绝大部分时间是在写开发板的综合实验(即本实验),我们**资料不完善,坚决不卖,这样战舰STM32开发板的上市时间一推再推,硬件版本也从1.0升级到了1.8,甚至有朋友笑言,我都从大二等到大四了…在此,对那些还在等待我们开发板的朋友说声抱歉,谢谢你们的支持和理解。我想说,用心做产品,真的不容易,战舰开发过程中的点点滴滴,有机会再和大家分享。 在今年7月份的时候,终于把战舰STM32开发板综合实验的最后一个功能写完了,至此综合实验的开发基本完成,前前后后,耗时近两年。 接下来我们就看看战舰STM32开发板综合实验的功能吧。 战舰STM32开发板综合实验总共有18大功能,分为2页,每页9个功能,页面的切换采用滑动操作。18大功能分别为:电子图书、数码相框、音乐播放、应用中心、时钟、系统设置、FC游戏机、收音机、记事本、运行器、3D、手写画笔、照相机、录音机、USB连接、TOM猫、无线传书、计算器。 电子图书,支持.txt/.c/.h/.lrc等4种格式的文件阅读。 数码相框,支持.bmp/.jpeg/.jpb/.gif等4种格式的图片文件播放。 音乐播放,支持.mp3/.wma/.wav/.flac/.ogg/.mid/等常见音频文件的播放。 应用中心,可以扩展16个应用程序,我们实现了其中1个,其他留给大家自己扩展。 时钟,支持温度、时间、日期、星期的显示,并加入时间3D效果显示。 系统设置,整个综合实验的设置。 FC游戏机,即NES模拟器,支持.nes文件的运行,通过开发板玩NES游戏。 收音机,支持全范围FM(76Mhz~108Mhz)接收,支持手动/半自动/全自动搜台。 记事本,可以实现文本(.txt/.c/.h/.lrc)记录编辑等功能,支持中英文输入,手写识别。 运行器,即SRAM IAP功能,支持.bin文件的运行(文件大小+SRAM大小≤60K)。 3D,可以测量角度,并支持3D演示。 手写画笔,可以作画/对bmp图片进行编辑,支持画笔颜色/尺寸设置。 照相机,可以拍照(需要摄像头模块支持),并支持成像效果设置。 录音机,支持wav文件格式的录音(8Khz/16位单声道录音)。 USB连接,支持和电脑连接读写SD卡/SPI FLASH 的内容。 TOM猫,和手机的TOM猫游戏的功能类似,模仿人声,进行人机对话。 无线传书,通过无线模块,实现两个开发板之间的无线通信。 计算器,一个科学计算器,支持各种运算,精度为12位,支持科学计数法表示。 以上,就是综合实验的18个功能简介,涉及到的内容包括:GUI(ALIENTEK编写,非ucGUI)、UCOS、内存管理、图片解码、MP3播放、文件系统、USB、IAP、NES模拟器、手写识别、汉字输入等非常多的内容。下面,我们将详细介绍这18个功能。 61.2战舰STM32开发板综合实验详解 要测试战舰STM32开发板综合实验的全部功能,大家得自备1个SD卡和1个ALIENTEK摄像头模块。不过,就算没有这两个东西,综合实验还是可以正常运行的,只是有些限制而已,比如:不能保存新建的记事本、不能保存新建的画图、不能使用录音机功能、不能使用摄像头功能等。除了这几个,其他功能都可以正常运行。 我们先来看看战舰STM32开发板综合实验的启动界面,启动界面如图61.2.1所示:
图61.2.1 综合实验启动界面
注意:综合实验支持屏幕截图(通过USMART控制,波特率为115200),本章所有图片均来自屏幕截图! 上图显示了综合实验的详细启动过程,首先显示了版权信息,软硬件版本,接着显示了LCD驱动器的型号(LCD ID),然后显示CPU和内存信息,之后显示SPI FLASH的大小,接着开始初始化文件系统(FATFS),然后显示SD卡容量和FLASH Disk容量(注意 FLASH Disk就是指SPI FLASH,因为我们划分了6M空间给FATFS管理,所以FLASH Disk的容量为6124KB)。 接着,就是硬件检测,完了之后检测字库和系统文件,再初始化触摸屏,加载系统参数(参数保存在24C02里面),最后启动系统。在加载过冲中,任何一个地方出错,都会显示相应的提示信息,请在检查无误后,按复位重启。 这里有几个注意的地方: ① 如果没插入SD卡,会显示SD Card ERROR,不过系统还是会继续启动,因为没有SD卡系统还是可以启动的(前提是SPI FLASH(W25Q64)里面的系统文件和字库文件都是正常的)。 ② 系统文件和字库文件都是存在SPI FLASH(W25Q64)里面的,如这两个文件被破坏了,在启动的时候,会执行字库和系统文件的更新,此时你得准备一个SD卡,并拷贝SYSTEM文件夹(注意:这个SYSTEM文件夹不是开发板例程里的SYSTEM文件夹,而是光盘根目录àSD卡根目录文件àSYSTEM文件夹)到SD卡根目录,以便系统更新时使用。 ③ FLASH Disk是从SPI FLASH(W25Q64)里面分割6M空间出来实现的,强制将4K字节的扇区改为512字节使用,所以在写操作的时候擦除次数会明显提升(8倍以上),因此,如非必要,请不要往FLASH Disk里面写文件。频繁的写操作,很容易将FLASH Disk写挂掉。 ④ 在系统启动时,一直按着KEY0不放(加载到Touch Check的时候),可以进入强制校准。当你发现触摸屏不准的时候,可以使用这个办法强制校准。 ⑤ 在系统启动时,一直按着KEY1不放(加载到Font Check的时候),可以强制更新字库。 ⑥ 本系统用到触摸按键TPAD做返回(类似手机的HOME键),所以请确保多功能端口P14的ADC和TPAD用跳线帽短接! ⑦ 如果插入了SD卡,系统在启动的时候,会在SD卡的根目录创建4个文件夹:TEXT、RECORDER、PAINT和PHOTO。其中,TEXT文件夹用来保存新建的文本文件(记事本功能时使用);RECORDER文件夹用来保存录音文件(录音机功能时使用);PAINT文件夹用来保存新建的画板文件(手写画笔功能时使用);PHOTO文件夹用来保存相片(照相机功能时使用)。 在SYSTEM Starting…之后,系统启动UCOSII,并加载SPB界面,在加载成功之后,来到主界面,主界面如图61.2.2所示:
图61.2.2 综合实验系统主界面
这里主界面默认是简体中文的,我们可以在系统设置里面设置语言,战舰STM32开发板综合实验支持3种语言选择:简体中文、繁体中文和英文。 在进入主界面之后,开发板上的DS0开始有规律的短亮(每2.5秒左右亮100ms),提示系统运行正常,我们可以通过DS0判断系统的运行状况。另外,如果运行过程中,出现HardFault的情况,系统则会进入HardFault中断服务函数,此时DS0和DS1都会闪烁,提示系统故障。同时在串口打印故障信息。通过串口,系统会打印其他很多信息,最常打印的是内存使用率,然后我们还可以通过USMART对系统进行调试。 如图61.2.2所示,综合实验的主界面分为2页,通过滑动切换,系统刚启动的时候加载的是主界面A,通过滑动可以切换到主界面B,类似现在的智能手机。主界面,总共18个功能图标,我们可以随便点击一个即可选中,如图61.2.3所示:
图61.2.3 选中电子图书
从上图可以看出,选中之后,图标发生了一点点变化,手机图标也是类似的效果,其实就是一个alphablend。再次点击该图标,我们就可以进入电子图书功能。 在任何界面下,都可以通过按TPAD返回上一级,直至返回到主界面。PS:TPAD就是战舰STM32开发板上的一个触摸按键,即右下角的ALIENTEK **!! 在介绍完系统启动之后,我们开始介绍各个功能。 61.2.1 电子图书 双击主界面的电子图书图标,进入如图61.2.1.1所示的文件浏览界面:
图61.2.1.1 文件浏览界面
上图中,左侧的图是我们刚刚进入的时候看到的界面(类似在XP上打开我的电脑),可以看到我们有2个盘:SD卡和FLASH 磁盘。我们可以选择任何一个打开,并浏览里面的内容。注意,即使没有插入SD卡,还是会出现SD卡图标,只是此时不能打开而已! 界面的上方显示文件/文件夹的路径。如果当前路径是磁盘/磁盘根目录则显示磁盘图标,如果是文件夹,则显示文件夹图标,另外,如果路径太深,则只显示部分路径(其余用…代替)。 界面的下方显示磁盘/文件夹信息。 界面的下方,显示磁盘信息/当前文件夹信息。对磁盘,则显示当前选中磁盘的总容量和可用空间,对文件夹,则显示当前路径下文件夹总数和文件总数,并显示你当前选中的是第几个文件夹/文件。 双击打开SD卡,得到界面如右侧图片所示,此时,因为SD卡根目录的文件数目超过了1页所能显示的数目,所以在右侧出现了滚动条,我们可以拖动滚动条/按滚动条两端的按钮/直接在屏幕中心区域拖动,来查找你要打开的文件/文件夹。 选中一个文件夹,双击打开得到如图61.2.1.2所示界面:
图61.2.1.2 目标文件和文本阅读
上图左侧显示了当前文件夹下面的目标文件(即电子图书支持的文件,包括.txt/.h/.c/.lrc等格式,其中.txt/.h/.c文件共用1个图标,.lrc文件单独一个图标)。另外,如果文件名太长,在我们选中该文件名后,系统会以走字的形式,显示整个文件名。 我们打开一个lrc文件,开始文本阅读,如图右侧的图片所示,同样我们可以通过滚动条/拖动的方式来浏览,图中我们还看到有一个光标,触摸屏点到哪,它就在哪里闪烁,可以方便大家阅读。 文本阅读是将整个文本文件加载到外部内存里面来实现的,所以文本文件最大不能超过外部内存总大小,即680KB(这里仅指受内存管理的部分,不是整个外部SRAM的大小)。 当我们想退出文本阅读的时候,通过按TPAD触摸按键实现,按一下TPAD,则又回到查找目标文件状态(左侧图),按返回按钮可以返回上一层目录,如果再按一次TPAD则直接返回主界面。 61.2.2 数码相框 双击主界面的数码相框图标,进入文件浏览界面,这个和61.2.1节差不多,我们找到存放图片的文件夹,如图61.2.2.1所示:
图61.2.2.1 文件浏览和图片播放
左侧是文件浏览的界面,可以看到在图片文件夹下总共有18个文件,包括gif/jpg/bmp等,这些都是数码相框功能所支持的格式。右侧图片显示了一个正在播放的GIF图片,并在其左上角显示当前图片的名字。当然,我们也可以播放bmp和jpg文件,如图61.2.2.2所示:
图61.2.2.2 bmp和jpg图片播放
对于bmp和jpg文件,基本没有尺寸限制(但图片越大,解码时间越久),但是对于gif文件,则只支持尺寸在240*320以内的文件(因为gif图片我们不好做尺寸压缩处理),超过这个尺寸的gif图片将无法显示!! 我们可以通过按屏幕的上方(1/3屏幕)区域切换到上一张图片浏览;通过按屏幕的下方(1/3屏幕)区域切换到下一章图片;通过单击屏幕的中间(1/3屏幕)区域可以暂停自动播放,同时DS1亮,提示正在暂停状态,双击屏幕的中间区域会弹出返回按钮,如图61.2.2.3所示:
图61.2.2.3 弹出返回按钮
此时,我们可以通过按返回按钮返回文件浏览状态,当然也可以通过按TPAD按钮,直接返回文件浏览状态(不需要等返回按钮弹出)。 图片浏览支持两种自动播放模式:循环播放/随即播放。大家可以在系统设置里面设置图片播放模式。系统默认是循环播放模式,在该模式下,每隔4秒左右自动播放下一张图片,依次播放所有图片。而随机播放模式,也是每隔4秒左右自动播放下一张图片,但是不是顺序播放,而是随机的播放下一张图片。 另外需要注意,不是所有的jpg格式图片都可以在我们的开发板上正常播放的(解码程序的问题),只有JFIF格式的jpg文件才能正常解码显示,对于EXIF格式的jpg文件,则不能直接显示,大家可以将EXIF格式的jpg文件用XP的画图打开,然后再保存一下,就将EXIF格式转为JFIF格式了,这样就可以在开发板上正常解码,并显示了。
实验56 战舰STM32开发板综合实验.rar
(1.66 MB)
测试用文件.rar
(2.08 MB)
SYSTEM.rar
(1.01 MB)
《STM32开发指南》第六十一章 战舰STM32开发板综合实验.rar
(1.53 MB)
|