原创 【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第六十一章 战舰STM32开发板综合实验(标准例程终结篇)

2013-5-17 23:47 11291 29 39 分类: MCU/ 嵌入式 文集: STM32学习

  

第六十一章 战舰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 LOGO!!

在介绍完系统启动之后,我们开始介绍各个功能。

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格式了,这样就可以在开发板上正常解码,并显示了。

61.2.3 音乐播放

       双击主界面的音乐播放图标,进入文件浏览界面,这个和61.2.1节差不多,只是这里我们浏览的文件变为了.mp3/.ogg/.wma/.flac/.wav/.midi等音频文件,我们找到存放音频文件的文件夹,如图61.2.3.1所示:

 


图61.2.3.1 文件浏览和ogg格式播放

       左侧是文件浏览的界面,可以看到在MUSIC文件夹下总共有37个音频文件,包括mp3/ogg/wma/flac/wav等格式,这些都是播放器所支持的格式。右侧图片则是我们播放器的主界面,该界面显示了当前播放歌曲的名字、播放进度、播放时长、总时长、码率、音量、当前文件编号、总文件数、歌词等信息。下方的5个按键分别是:目录、上一曲、暂停/播放、下一曲、返回。点击播放进度条,可以直接设置歌曲播放位置,点击声音进度条,可以设置音量。上图为正在播放ogg文件,当然我们还可以播放其他音频格式,如图61.2.3.2所示:

 


图61.2.3.2 mp3格式播放和flac格式播放

       图61.2.3.2中,分别显示了播放mp3格式和flac格式的音频文件。播放flac格式的时候,由于得不到正确的码率,所以总时间也是不正确的,图中数字仅供参考。另外播放flac因为要加载flac的patch,故无法加载频谱分析的patch,从而无法显示频谱,可以看到在右侧的图片中,没有频谱显示了,除了flac不能显示频谱,其他音频文件都是可以正常显示频谱的。

播放器还可以设置音效和播放模式(均在系统设置里面设置)。音效包括高低音调节、空间效果等设置。播放模式有3种:全部循环、随机播放、单曲循环,默认为全部循环。

       另外,关于歌词显示。歌词必须和歌曲在同一个文件夹里面,且名字必须相同(当然后缀是不同的,歌词后缀为.lrc),这样才能正常显示歌词。对于没有歌词文件的歌曲,则直接播放,不显示歌词。歌词分为3行,第一行为上一句歌词,第二行为当前正在唱的歌词,第三行为将要唱的歌词。对于第二行歌词,如果太长,则会采用走字的形式来显示,走字时间由系统自动确定。

       我们可以通过按目录按钮,来选择其他音频文件;按返回按键(或TPAD)则可以返回主界面,不过此时正在播放的歌曲还是会继续播放(后台播放),如果想关闭音乐播放器,则需要先按暂停,然后返回主界面,即可关闭音频播放器,否则音频播放器将一直播放音乐。

       最后,我们默认是开启了FM发射的,在播放MP3的时候,音频会通过RDA5820发送出去,默认的频率是93.6Mhz,大家可以打开收音机调到93.6Mhz,就可以听到来自开发板的歌声了。FM发射频率和发射开关也都是可以在系统设置里面设置的,具体后面再介绍。

61.2.4 应用中心

       双击主界面的应用中心图标,进入应用中心界面,如图61.2.4.1所示:

 


图61.2.4.1 应用中心和红外遥控

       左侧图片是我们刚进入应用中心看到的界面,在该界面下总共有16个图标,我们仅实现了第一个:红外遥控功能。其他都没有实现,大家可以自由发挥,添加属于自己的东西。双击第一个图标,会弹出一个红外遥控的小窗口,用于接收红外信号,如图61.2.4.1右侧图片所示。

       此时,我们将红外遥控对准战舰STM32开发板的红外接收头,并按钮,则可以在红外遥控窗体里面显示键值、按键次数、符号等信息。如图61.2.4.2所示:

 


图61.2.4.2 红外按键解码

       图中,我们按下了红外遥控器下的两个按键,分别得到两个按键的键值、次数和符号等信息。其中次数是代表我们持续按下红外遥控某个按键的时长,越长该值越大。

       需要注意一点是,如果当前正在播放MP3,则红外解码成功率大大降低,原因是MP3播放任务的优先级最高,严重影响红外信号接收,导致解码成功率降低,当发现无法识别的时候,可以先停止MP3的播放再试试。

61.2.5 时钟

       双击主界面的时钟图标,进入时钟界面,如图61.2.5.1所示:

 


图61.2.5.1 时钟界面

       图61.2.5.1的左侧图片为加载时钟界面时的提示界面,表明没有检测到18B20,启用内部温度传感器,之后进入时钟主界面,如右侧图片所示。在时钟界面,我们显示了日期、时间、温度、星期等信息,并且在屏幕上方区域,有一个3D的时间在显示,3D时间显示会不停的变换位置,位置变化是无规律的。我们可以在系统设置里面设置时间和日期,并且还可以设置闹钟和闹铃,这个我们后面再介绍。

图中的温度是通过STM32自带的温度传感器采集的,所以有点偏高,如果我们在开发板的U13处插入DS18B20,则会采集来自18B20的温度,这样就比较准确了。

在进入时间界面以后,要退出该界面有2个办法:1,在屏幕向左滑动触摸;2,按TPAD返回。

61.2.6 系统设置

       双击主界面的系统设置图标,进入系统设置界面,如图61.2.6.1所示:

 


图61.2.6.1 系统设置主界面和时间设置界面

       上图中左侧的图片为系统设置主界面,在系统设置里面,总共有19个项目:时间设置、日期设置、闹钟时间设置、闹钟开关设置、闹钟铃声设置、语言设置、数码相框设置、MP3播放模式设置、MP3音效设置、FM发射开关设置、FM发射频率设置、FM收音设置、背光设置、屏幕校准、传感器校准、系统文件更新、系统信息、系统状态、关于。通过这19个项目,我们

可以设置和查看各种系统参数。下面我们将一一介绍这些设置。

       首先是时间设置,如图61.2.6.1右侧图片所示,双击时间设置,就会弹出一个时间是指对话框,通过这个对话框,我们就可以设置开发板的时间了。设置好之后点击确定回到系统设置主界面,如果想放弃设置,则直接点击取消(或TPAD)。

       再来看看日期设置和闹钟时间设置,如图61.2.6.2所示:

 


图61.2.6.2 日期设置和闹钟时间设置

       上图中,左侧的对话框用来设置系统日期,右侧的对话框用来设置闹钟时间。操作上同前面介绍的时间设置的方法一模一样。关于闹钟,我们等下再详细介绍,先看闹钟开关设置和闹钟铃声设置两个界面,如图61.2.6.3所示:

 


图61.2.6.3 闹钟开关设置和闹钟铃声设置

       上图中,左侧对话框用来设置闹钟开关,右侧对话框用来设置闹钟铃声。这里,我们来介绍一下本系统的闹钟,本系统的闹钟以星期为周期,以时间为点实现闹钟,比如判断一个闹钟是否应该响铃的标准是:先判断星期的条件是否满足,比如上图我们设置是周一到周五闹铃,今天(10月5号)刚好是周五,所以满足星期条件,接着看时间是否相等,如果两个条件都满足,则闹铃。从前面的时间设置我们知道当前时间是20:30分,而上图我们设置的闹钟时间是20:35,所以时间还不相等,故不闹铃,当时间来到20:35的时候,系统将会闹铃。闹铃铃声有4种,如上图右侧图片所示,铃声由蜂鸣器产生,铃声1对应“滴”,铃声2对应“滴、滴”,铃声3和4依此类推。当闹钟时间到来的时候,产生闹铃,如图61.2.6.4所示:

 


图61.2.6.4 闹铃和语言设置

       上图中,左侧的图片显示正在闹铃。此时会弹出一个闹钟的对话框,并显示当前时间,同时蜂鸣器发出“滴、滴、滴、滴”的闹铃声(铃声4)。按取消(或TPAD)可以关闭闹钟,按再响,则5分钟后(20:40)继续闹铃。右侧的图片为语言设置界面,系统支持3种语言设置,默认为简体中文,设置为繁体中文/English之后如图61.2.6.5所示:

 


图61.2.6.5 繁体中文和English

       上图显示了繁体中文和English的设置,不过本章我们还是以简体中文为例进行介绍。下面,我们来看看数码相框设置和MP3播放模式设置,如图61.2.6.6所示:

 


图61.2.6.6 数码相框设置和MP3播放模式设置

       前面提到数码相框支持全部循环播放和随机播放两种模式,就是通过上图左侧的界面设置的。而MP3的三个播放模式,则通过右侧的界面进行设置。接下来看看MP3音效设置和FM发射开关设置,如图61.2.6.7所示:

 


图61.2.6.7 MP3音效设置和FM发射开关设置

       上图中,左侧的界面我们可以设置MP3播放的音效(VS1053的设置),包括音量、高低音以及空间效果等,大家可以根据自己喜欢设置,以上为默认设置。右侧的FM发射开关设置,用来设置是否开启FM发射,默认设置为开启,即只要不是收音机模式,其他所有界面FM发射都是开启的,这样我们就可以通过收音机来听到来自STM32开发板的声音了。

       下面我们看看FM发射频率设置和FM收音设置,如图61.2.6.8所示:

 


图61.2.6.8 FM发射频率设置和FM收音设置

       上图中,左侧的界面用于设置FM发射频率,用于设置FM发射频点,我们默认的频率是93.6Mhz,所以大家的收音机请调到93.6Mhz(默认频率),以接听来自开发板的声音。右侧的图片用于设置FM收音是否开启后台播放的功能。

接下来,我们看看背光设置和屏幕校准,如图61.2.6.9所示:

 


图61.2.6.9 背光设置和屏幕校准

       上图中,左侧的界面用于设置LCD背光的亮度,默认我们是设置为最亮的,大家可以根据自己的喜欢设置背光亮度,背光亮度控制是通过PWM控制的。

右侧为触摸屏校准界面,这个校准界面和手机校准界面基本类似,校准的时候,请用触笔(或者其他尖一点的东西)依次点击4个十字圈的最中心(图中只是第一个,如果点击了第一个会自动弹出第二个,总共4个),在4个校准点都准确点击之后,系统提示校准成功字符串:Touch Screen Adjust OK!。如果校准失败,则提示失败信息,请重新校准,直到校准成功,如果多次校准都不成功,有可能你的触摸屏有问题了!

另外,在该界面下,如果连续10秒没有输入的话,系统会自动退出校准界面,当然,我们也可以按TPAD直接退出。

       接下来,我们看看传感器校准和系统文件更新,如图61.2.6.10所示:

 


图61.2.6.10 传感器校准和系统文件更新提示

       图中,左侧图片为传感器校准界面,这里的传感器设置ADXL345重力加速度传感器,校准的时候,请保持开发板水平并稳定,以得到最好的校准效果。

右侧的界面为系统文件更新提示界面,这里的系统文件是指SYSTEM文件夹里面的所有内容。战舰STM32开发板综合例程之所以可以没有SD卡也能正常运行,主要是将SYSTEM文件夹(注意这个不是源码里面的SYSTEM文件夹!!)拷贝到了FLASH Disk(即W25Q64)里面,这样,我们所有的系统资源都可以从W25Q64里面获得,从而正常启动。

SYSTEM文件夹目前是包含144个文件,总大小为2.6MB,包括137个图片/图标,另外包括5个字库相关文件以及2个VS1053的PATCH文件。这些文件一般不要修改,如果你想自己DIY的话,那可以修改这些文件,以达到你要的效果,不过建议修改之前备份一下,搞坏了还可以还原。

       如果在图61.2.6.10的系统文件更新提示时选择确定,则会执行系统文件更新,将SD卡的SYSTEM文件夹,拷贝到FLASH Disk里面。这里有个前提,就是你的SD卡必须有这个SYSTEM文件夹!更新时界面如图61.2.6.11所示:

 


图61.2.6.11 系统文件更新和系统信息

       上图中,左侧的界面显示了系统文件正在更新,该界面显示了当前更新的文件夹以及文件和进度等信息。右侧的界面为系统信息界面,通过该界面,可以看到软硬件的详细信息。

       最后,我们来看看系统状态和关于界面,如图61.2.6.12所示:

 


图61.2.6.12 系统状态和关于界面

       上图中,左侧的界面显示了当前系统资源状况,显示了当前CPU使用率,CPU温度以及内存使用率。图为后台正在播放MP3的时候资源使用情况,当播放高码率的歌曲的时候,CPU使用率会大增(如播放wav,则CPU使用率在60%左右)。

       右侧的图片显示了战舰STM32开发板的软硬件版本以及产品序列号,这个序列号是全球唯一的,每个开发板都不一样。

61.2.7 FC游戏机

       战舰STM32开发板综合实验移植了NES模拟器,可以运行nes游戏,双击主界面的系统设置图标,进入文件浏览界面,如图61.2.7.1所示:

 


图61.2.7.1 文件浏览和小蜜蜂游戏

       左侧为nes文件浏览界面,我们随便选择一个打开即可开始游戏了,记得插上手柄哦!右侧的图片为小蜜蜂游戏的界面,当然还可以玩很多其他经典游戏,如下面的图片所示:

 


图61.2.7.2 超级玛丽和90坦克

 


图61.2.7.3 超时空要塞和中国象棋

 


图61.2.7.4 马戏团和淘金者

       这里,我们仅列出了几种游戏,这都是80后童年时玩的经典游戏,如今,在战舰STM32开发板上,大家可以回味一下当年的经典了。

       不过,我们提供的nes模拟器,由于代码问题,对大于50KB的nes文件基本不支持,不过即使这样,还是有很多游戏可玩的。另外也没有加入声音输出。如果对nes模拟器有兴趣的朋友可以完善一下这两方面,我们在光盘提供了相关资料可供研究。

 

61.2.8 收音机

       双击主界面的收音机图标,进入收音机界面,如图61.2.8.1所示:

 


图61.2.8.1 收音机主界面和模式选择界面

       上图中,左侧图片为收音机的主界面,显示了当前频率、单/双声道、信号强度、音量、电台编号(自动搜台的时候自动保存)等信息,界面下方的5个按钮分别是:模式选择、频率减(或上一个电台)、暂停/继续收音、频率增(或下一个电台)和返回。右侧的图片为按了模式选择后弹出的界面,选择模式设置/频段选择并按确认后,得到如图61.2.8.2所示:

 


图61.2.8.2 模式设置和频段选择界面

       上图中,左侧的图片为模式设置界面,总共有3个模式可以设置:手动搜台、半自动搜台和全自动搜台。

       手动搜台:完全手动搜索,通过频率增/减两个按钮调节频率。

       半自动搜台:此时频率增/减分别代表查找下一个/上一个电台,只要按一下按钮,收音机自动查找下一个/上一个电台,找到有效电台即停止搜索,并播放这个有效电台。

       全自动搜台:选中之后,收音机从最小频率开始找台,一直搜索到最大频率,把整个过程中的有效电台记录下来,搜索完毕,可以从主界面的“CH:”看到总有效电台的个数,可以通过频率增/减按钮来跳转电台。

       右侧的图片为频段选择界面,本收音机支持3个频段:日本频段(76Mhz~91Mhz)、欧美频段(87~108Mhz,也是中国电台使用的频段)、扩展频段(76Mhz~108Mhz)。默认设置为欧美频段。

       收音机可以后台工作,只要您在系统设置里面开启了后台收音。如果没有开启后台收音,在按返回键之后,收音机将自动关闭。

       本收音机使用起来还是比较简单,使用时,请把天线拉出,如果搜不到台,一般是因为你所处环境干扰太大,建议去空旷地方试试。

61.2.9 记事本

       双击主界面的记事本图标,首先弹出模式选择对话框,如图61.2.9.1所示:

 


图61.2.9.1 模式选择和新建文本文件

       记事本支持2种模式:1,新建文本文件,这种方式完全新建一个文本文件(以当前系统时间命名),用来输入信息。2,打开已有文件,这种方式可以对已有的文件进行编辑。

       上图中,右侧的界面为我们选择新建文本文件后的界面,此时出现一个空白编辑区和一个闪烁的光标,我们通过下方的键盘输入信息即可,这个输入键盘和我们的手机键盘十分类似,输入方法也是一模一样,支持中文、字母、数字和手写识别输入等几种输入方式。中文输入和标点符号输入,如图61.2.9.2所示:

 


图61.2.9.2中文输入和标点符号输入

       中文输入就是我们前面T9拼音输入法实验的具体运用。该键盘还支持英文输入和手写识别输入,如图61.2.9.3所示:

 


图61.2.9.3中文输入和标点符号输入

       上图中,左侧的图片为英文输入界面,比较简单;右侧的图片为手写识别的输入界面,这里我们也是用到前面手写识别实验的知识实现的。

       只要新建文本文件有被编辑过,那么在返回(按TPAD返回)的时候,系统会提示是否保存,如图61.2.9.4所示:

 


图61.2.9.4保存提示和编辑已有文件

       上图中,左侧图片为提示保存界面,如果选择确定,该文件将被保存在SD卡根目录的TEXT文件夹里面。右侧图片为打开已有文件进行编辑的界面,这样我们就可以在战舰STM32开发板上编辑.txt/.h/.c/.lrc文件了。

61.2.10 运行器

双击主界面的运行器图标,首先进入文件浏览界面,如图61.2.10.1所示:

 


图61.2.10.1文件浏览和运行警告

       上图中,左侧为文件浏览界面,图中显示了可运行的bin文件有41个,这些全部来自我们的标准例程。bin文件的生成办法,请参考串口IAP实验这个章节。本运行器支持60K字节以内的程序运行(FLASH+SRAM总共不超过60K),我们的例程有多达41个实验可以直接在运行器里面运行(生成.bin文件),我们提供了SRAM APP版本的例程,编译后直接生成.bin文件,拷贝到SD卡,即可运行查看实验现象。所有41个例程的.bin文件,我们已单独放到一个文件夹,供大家测试使用。通过运行器,大家可以直接运行我们大部分例程,而不用再去刷代码了,方便大家测试和验证我们的实验。

       右侧的图片是运行前的警告界面,因为一旦执行.bin文件,我们的系统将无法恢复,只能靠复位重启。点击确定之后,STM32就开始运行你所选择的.bin文件了,实验现象和对应实验所描述的现象一模一样。之后,

61.2.11 3D

双击主界面的3D图标,进入3D演示界面,如图61.2.11.1所示:

 


图61.2.11.1文件浏览和运行警告

       左侧的图片为我们刚进入是的界面(假设板子是水平放置的),此时可以看到X/Y/Z三个方向的角度基本都是0,屏幕中心为一个立方体图形,该图形会随着角度的变化而变化。右侧的图片,显示了我们后我们把板子倾斜一定角度放置时的情况,可以看到X/Y/Z角度都发生了变化,而且立方体图形也产生了变化。

       我们还可以通过触摸屏来控制立方体的转动,直接在屏幕滑动即可看到立方体随着我们的滑动而改变方向(视角)。

61.2.12 手写画笔

       双击主界面的手写画笔图标,首先弹出模式选择对话框,如图61.2.12.1所示:

 


图61.2.12.1模式选择和新建画笔

       上图中,左侧图片为我们双击手写画笔后,弹出的模式选择界面,我们可以选择新建画笔,建立一个新的文件;也可以选择打开一个已有的位图进行编辑。右侧的图片为我们新建画笔后输入的内容,默认画笔为最小尺寸,颜色为红色。画笔的颜色和尺寸是可以设置的,按WK_UP按键,则弹出画笔设置对话框,如图61.2.12.2所示:

 


图61.2.12.2画笔设置和画笔颜色设置

       上图中,左侧的图片为按WK_UP按键后弹出的画笔设置对话框,我们可以选择对画笔颜色和画笔尺寸进行设置。右侧的图片为画笔颜色设置对话框,在该对话框里面,我们可以直接在颜色条快速输入要设置的颜色,也可以通过下方的三个滚动条进行精确设置,右侧的正方形区域为预览区。画笔尺寸设置界面如图61.2.12.3所示:

 


图61.2.12.3画笔尺寸设置和完成后的画图

       上图中,左侧为画笔尺寸设置界面,我们可以通过滚动条设置画笔尺寸,对话框显示了画笔尺寸和对应的预览图。右侧的图片为我们完成的画图文件,在返回主界面(按TPAD)的时候,会提示保存,如图61.2.12.4所示:

 


图61.2.12.4保存画图和编辑已有位图

       上图中,左侧为我们退出时弹出的提示保存对话框,如果选择确定,新的画图文件将会被保存在SD卡的PAINT文件夹里面,命名方式是以时间命名的,如PAINT20120907133223.bmp。

       右侧的图片为对打开的位图进行编辑的界面,通过这个功能,我们可以在开发板上实现对一些相片(bmp格式)进行涂鸦。

61.2.13 照相机

       双击主界面的照相机图标,首先初始化OV7670摄像头模块,如图61.2.13.1所示:

 


图61.2.13.1 初始化OV7670和等待拍照

       在初始化OV7670之后,进入等待拍照模式,此时我们可以通过点击屏幕,弹出相机设置对话框,对摄像头的参数进行设置,如图61.2.13.2:

 


图61.2.13.2 相机设置和优先模式设置

       在相机设置界面,我们可以对很多参数进行调节。右侧的图片为优先模式设置,支持速度优先和清晰度优先(通过降低帧率实现)两种模式,我们默认的是速度优先模式。

再来看看场景设置和特效设置,如图61.2.13.3所示:

 


图61.2.13.3 场景设置和特效设置

       场景设置支持5种常用场景,特效设置支持6种特效(不含普通模式),我们可以根据自己的需要选择。

 省略部分内容!!

文章评论10条评论)

登录后参与讨论

用户1701430 2014-1-12 20:34

顶你,牛人,向你学习。

用户1466614 2013-8-29 18:23

这么丰富的资料

用户449762 2013-6-9 12:42

支持下原子哥

chen_zs2012_704941858 2013-6-7 13:17

用户403664 2013-6-6 17:26

等前辈牛人继续发光!

用户432355 2013-5-31 12:36

向牛人致敬

chen_zs2012_704941858 2013-5-18 07:51

已经买了板子,准备向前辈学习了

liujun6037_345432000 2013-5-17 23:50

我是个完美主义者,如果不能令我满意的产品,我是不会推向市场的。现在,太多的人为了利益不择手段,导致整个中国的市场乌烟瘴气,不求荣华富贵,但求问心无愧。 最后,谢谢大家对ALIENTEK的支持。ALIENTEK将一如既往,将品质**务做到最好。

liujun6037_345432000 2013-5-17 23:49

到现在已经到了V2.0版本,相对于V1.0版本的硬件改进项:采用了VS1053解码芯片,直接板载FM收发芯片,采用74HC4052做音频选择,增加了触摸按键(TPAD),采用了DCDC电源方案,板载了TVS电源保护和过流保护,PCB沉金工艺,定制黄色全铜镀金排针,这一切都源自我们对质量的不断追求。 三、战舰板的软件设计战舰板的整个开发周期,可以说90%的时间都是在设计战舰板的综合实验(5%用于硬件设计,5%用于其他例程设计),编译后270多KB的代码量,这个已经不需要用行数去衡量了,整个软件,花在GUI设计上占了很大一部分时间,其他就是无数次的出问题,无数次的找问题,烦恼过、怀疑过、迷茫过、兴奋过,经过无数个问题的修修补补,经过无数个夜晚的奋斗,没通宵,但是写代码到两三点,常有的事,有时候感觉来了,刹不住车,呵呵。最终才有了今天这般豪华的体验界面。最初的滑动界面构想,来自我那已故的山寨HTC3238的SPB界面;文件浏览和T9拼音输入法界面参考了WM6;对话框和应用中心界面参考了Android;MP3和收音机参考了某山寨机的界面;歌词显示参考了千千静听;计算器、录音机和TOM猫界面参考了android APP软件;时钟界面直接来自我的毕设;系统文件更新参考自XP的文件复制界面;总之,参考了非常多的界面,才有了今天的战舰板综合实验界面。整个过程,充满了艰辛,几次想放弃,不过最终坚持了下来,很庆幸我能把他完成,并带给大家。整个过程带给我的:1,学会了自己写GUI;2,学会了ucosii(之前没用过);3,学会了FATFS使用(之前用自己写的);4,学会了内存管理(以前没用过,因为用不到);5,创作了USMART组件(参考自RTT的finsh功能);6,移植了gif显示(改自ucGUI源码);7,仿写了TOM猫游戏;8,深入的了解了STM32;9,学会了很多编程技巧;10,参考了很多网友的优秀设计(xiaowei061、MacroXu、k10k10k10等);总之,这是一段艰苦而又收获非常大的难忘经历,这两年,没白过。 四、思考 从最初的设计到产品面世,战舰板的这个周期确实长了点,很多朋友和我说,我都从大二等到大四了...两年很短,但是对一个产品来说,那就太长了, 如果要问我值不值?我可以肯定的说:值,而且是很值。

liujun6037_345432000 2013-5-17 23:48

写在最后的话: 战舰STM32开发板的开发到面世,前后历时2年多,算是我这辈子目前投入精力最多的产品了。整个开发过程中,有太多的酸甜苦辣,各种故事,下面和大家简要分享一下。 一、战舰板的由来 2010年7月9号,我们的MiniSTM32开发板开始发售,当晚两点多,卖出ALIENTEK MiniSTM32的第一块开发板(此客户后又买了战舰STM32开发板的第一块开发板),首批50多套,全部是我手工焊接的,当时还要上班,每天下班回来焊接几套,然后出售,一套板子平均要焊接1个半小时,我6点到家,焊接到12点,一刻不停,也就焊接4套板子,大家可以想像一下,其中的滋味。焊完这50套板子,我发誓这辈子再也不干这种“蠢事”了。不过,我们的艰苦付出得到了回报,因为有《STM32不完全手册》这个广为流传的STM32教程做我们MiniSTM32开发板的教材,很快,我们的板子就得到了大家的认可,销量慢慢上去了(在这里真心的感谢购买我手工焊接的那50套板子的朋友,没有你们的支持,就没有ALIENTEK的今天)。此时有客户提到,我们的Mini板功能太少了,希望有更加强大的板子,其实当时我们也意识到了这点,所以就开始着手新款板子的设计,这就是战舰板的由来。 二、战舰板的硬件设计 战舰板的第一版硬件设计其实只花了不到2个星期,就出来了,不过这个版本(V1.0)从来没有发表过,基本上只有我身边的几个朋友见到过真身(现在估计我也找不到第一个版本的真身在哪里了,呵呵),第一版设计的原则是:1,参考我的毕业设计(有MP3,有收音机);2,根据客户需求,弥补mini板所缺少的功能;3,参考市面其他开发板的可取之处。基于这三点,就有了战舰STM32开发板的第一版,采用VS1003音频解码芯片,用PT2314作为音频选择芯片,FM部分也是用的RDA5820的模块(小pcb那种,不像现在的直接贴IC),没有触摸按键,其他硬件和现在的版本区别不是太大。在这个板上,完成了战舰板的基本功能验证,后续根据代码编写过程中发现的问题,以及自己知识的增加,对硬件进行了数次变动,最后,面世的时候,硬件版本已经到了V1.8,版本虽然变化不大,但是时间却到了2012年的10月份,在经过了近两年的时间后才有了最终面世的战舰STM32开发板。
相关推荐阅读
正点原子 2013-05-03 23:02
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第六十章 UCOSII实验3-消息队列、信号量集和软件定时器
   第六十章 UCOSII实验3-消息队列、信号量集和软件定时器   上一章,我们学习了UCOSII的信号量和邮箱的使用,本章,我们将学习消息队列、信号量集和软件定时器...
正点原子 2013-05-03 20:42
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第五十七章 ENC28J60网络实验
第五十七章 ENC28J60网络实验   本章,我们将向大家介绍ALIENTEK ENC28J60网络模块及其使用。本章,我们将使用ALIENTEK ENC28J60网络模块...
正点原子 2013-05-01 23:00
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第五十九章 UCOSII实验2-信号量和邮箱
第五十九章 UCOSII实验2-信号量和邮箱      上一章,我们学习了如何使用UCOSII,学习了UCOSII的任务调度,但是并没有用到任务间的同步与通信,本章我们将学习两个最基本的...
正点原子 2013-04-30 10:55
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第五十八章 UCOSII实验1-任务调度
  第五十八章 UCOSII实验1-任务调度      前面我们所有的例程都是跑的裸机程序(裸奔),从本章开始,我们将分3个章节向大家介绍UCOSII(实时多任务操作系...
正点原子 2013-04-26 23:16
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第五十七章 ENC28J60网络实验
 第五十七章 ENC28J60网络实验  本章,我们将向大家介绍ALIENTEK ENC28J60网络模块及其使用。本章,我们将使用ALIENTEK ENC28J60网络模块和uIP 1...
我要评论
10
29
关闭 站长推荐上一条 /2 下一条