正点原子-122954 发表于 2013-5-17 23:51:36

【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第六十一章 战舰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所示:
http://www.openedv.com/upload/2013/5/17/3c3775dd3536300779a11b96b15da2bc_534.jpg
图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所示:
http://www.openedv.com/upload/2013/5/17/79eed42571c83ba8cd288b07a3168da6_29.png
图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所示:
http://www.openedv.com/upload/2013/5/17/6af97b3973599247a0f8033fe1f6e918_866.png
图61.2.3 选中电子图书       从上图可以看出,选中之后,图标发生了一点点变化,手机图标也是类似的效果,其实就是一个alphablend。再次点击该图标,我们就可以进入电子图书功能。
在任何界面下,都可以通过按TPAD返回上一级,直至返回到主界面。PS:TPAD就是战舰STM32开发板上的一个触摸按键,即右下角的ALIENTEK LOGO!!
在介绍完系统启动之后,我们开始介绍各个功能。
61.2.1电子图书
       双击主界面的电子图书图标,进入如图61.2.1.1所示的文件浏览界面:
http://www.openedv.com/upload/2013/5/17/46ef012c603ea29c29d9399285afdb51_367.png
图61.2.1.1 文件浏览界面       上图中,左侧的图是我们刚刚进入的时候看到的界面(类似在XP上打开我的电脑),可以看到我们有2个盘:SD卡和FLASH 磁盘。我们可以选择任何一个打开,并浏览里面的内容。注意,即使没有插入SD卡,还是会出现SD卡图标,只是此时不能打开而已!
       界面的上方显示文件/文件夹的路径。如果当前路径是磁盘/磁盘根目录则显示磁盘图标,如果是文件夹,则显示文件夹图标,另外,如果路径太深,则只显示部分路径(其余用…代替)。
界面的下方显示磁盘/文件夹信息。
界面的下方,显示磁盘信息/当前文件夹信息。对磁盘,则显示当前选中磁盘的总容量和可用空间,对文件夹,则显示当前路径下文件夹总数和文件总数,并显示你当前选中的是第几个文件夹/文件。
       双击打开SD卡,得到界面如右侧图片所示,此时,因为SD卡根目录的文件数目超过了1页所能显示的数目,所以在右侧出现了滚动条,我们可以拖动滚动条/按滚动条两端的按钮/直接在屏幕中心区域拖动,来查找你要打开的文件/文件夹。
       选中一个文件夹,双击打开得到如图61.2.1.2所示界面:
http://www.openedv.com/upload/2013/5/17/0b43f851f4d0cae0c1ed8dd7f687352d_348.png
图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所示:
http://www.openedv.com/upload/2013/5/17/41b0eeb32982e43bb59a7a814add19aa_86.png
图61.2.2.1 文件浏览和图片播放       左侧是文件浏览的界面,可以看到在图片文件夹下总共有18个文件,包括gif/jpg/bmp等,这些都是数码相框功能所支持的格式。右侧图片显示了一个正在播放的GIF图片,并在其左上角显示当前图片的名字。当然,我们也可以播放bmp和jpg文件,如图61.2.2.2所示:
http://www.openedv.com/upload/2013/5/17/3b3b65d56e0574189cf93d76e5c18f7e_993.png
图61.2.2.2 bmp和jpg图片播放对于bmp和jpg文件,基本没有尺寸限制(但图片越大,解码时间越久),但是对于gif文件,则只支持尺寸在240*320以内的文件(因为gif图片我们不好做尺寸压缩处理),超过这个尺寸的gif图片将无法显示!!
我们可以通过按屏幕的上方(1/3屏幕)区域切换到上一张图片浏览;通过按屏幕的下方(1/3屏幕)区域切换到下一章图片;通过单击屏幕的中间(1/3屏幕)区域可以暂停自动播放,同时DS1亮,提示正在暂停状态,双击屏幕的中间区域会弹出返回按钮,如图61.2.2.3所示:
http://www.openedv.com/upload/2013/5/17/a10961ec4054926969418f30ae3490f8_457.png
图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所示:
http://www.openedv.com/upload/2013/5/17/f15b76181d4c6429f3de1654fd08e04c_141.png
图61.2.3.1 文件浏览和ogg格式播放       左侧是文件浏览的界面,可以看到在MUSIC文件夹下总共有37个音频文件,包括mp3/ogg/wma/flac/wav等格式,这些都是播放器所支持的格式。右侧图片则是我们播放器的主界面,该界面显示了当前播放歌曲的名字、播放进度、播放时长、总时长、码率、音量、当前文件编号、总文件数、歌词等信息。下方的5个按键分别是:目录、上一曲、暂停/播放、下一曲、返回。点击播放进度条,可以直接设置歌曲播放位置,点击声音进度条,可以设置音量。上图为正在播放ogg文件,当然我们还可以播放其他音频格式,如图61.2.3.2所示:
http://www.openedv.com/upload/2013/5/17/809f6192e63e2d155c3d9374ee297207_124.png
图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所示:
http://www.openedv.com/upload/2013/5/17/927d7b4992bfa444e4086e37fac0a082_515.png
图61.2.4.1 应用中心和红外遥控       左侧图片是我们刚进入应用中心看到的界面,在该界面下总共有16个图标,我们仅实现了第一个:红外遥控功能。其他都没有实现,大家可以自由发挥,添加属于自己的东西。双击第一个图标,会弹出一个红外遥控的小窗口,用于接收红外信号,如图61.2.4.1右侧图片所示。
       此时,我们将红外遥控对准战舰STM32开发板的红外接收头,并按钮,则可以在红外遥控窗体里面显示键值、按键次数、符号等信息。如图61.2.4.2所示:
http://www.openedv.com/upload/2013/5/17/52b77a64682ff36594e8250ae2eedb96_196.png
图61.2.4.2 红外按键解码       图中,我们按下了红外遥控器下的两个按键,分别得到两个按键的键值、次数和符号等信息。其中次数是代表我们持续按下红外遥控某个按键的时长,越长该值越大。
       需要注意一点是,如果当前正在播放MP3,则红外解码成功率大大降低,原因是MP3播放任务的优先级最高,严重影响红外信号接收,导致解码成功率降低,当发现无法识别的时候,可以先停止MP3的播放再试试。
61.2.5时钟
       双击主界面的时钟图标,进入时钟界面,如图61.2.5.1所示:
http://www.openedv.com/upload/2013/5/17/1ebf996d248fa08b0fe5792d8c8592c8_960.png
图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所示:
http://www.openedv.com/upload/2013/5/17/f270fbc7b4dd1361c9cc05a0ae1f7091_912.png
图61.2.6.1 系统设置主界面和时间设置界面       上图中左侧的图片为系统设置主界面,在系统设置里面,总共有19个项目:时间设置、日期设置、闹钟时间设置、闹钟开关设置、闹钟铃声设置、语言设置、数码相框设置、MP3播放模式设置、MP3音效设置、FM发射开关设置、FM发射频率设置、FM收音设置、背光设置、屏幕校准、传感器校准、系统文件更新、系统信息、系统状态、关于。通过这19个项目,我们
可以设置和查看各种系统参数。下面我们将一一介绍这些设置。
       首先是时间设置,如图61.2.6.1右侧图片所示,双击时间设置,就会弹出一个时间是指对话框,通过这个对话框,我们就可以设置开发板的时间了。设置好之后点击确定回到系统设置主界面,如果想放弃设置,则直接点击取消(或TPAD)。
       再来看看日期设置和闹钟时间设置,如图61.2.6.2所示:
http://www.openedv.com/upload/2013/5/17/3b30a5276ae7600b695daed438ca1956_142.png
图61.2.6.2 日期设置和闹钟时间设置       上图中,左侧的对话框用来设置系统日期,右侧的对话框用来设置闹钟时间。操作上同前面介绍的时间设置的方法一模一样。关于闹钟,我们等下再详细介绍,先看闹钟开关设置和闹钟铃声设置两个界面,如图61.2.6.3所示:
http://www.openedv.com/upload/2013/5/17/9170bc70a8f4c949d7f17b19653263e4_252.png
图61.2.6.3 闹钟开关设置和闹钟铃声设置       上图中,左侧对话框用来设置闹钟开关,右侧对话框用来设置闹钟铃声。这里,我们来介绍一下本系统的闹钟,本系统的闹钟以星期为周期,以时间为点实现闹钟,比如判断一个闹钟是否应该响铃的标准是:先判断星期的条件是否满足,比如上图我们设置是周一到周五闹铃,今天(10月5号)刚好是周五,所以满足星期条件,接着看时间是否相等,如果两个条件都满足,则闹铃。从前面的时间设置我们知道当前时间是20:30分,而上图我们设置的闹钟时间是20:35,所以时间还不相等,故不闹铃,当时间来到20:35的时候,系统将会闹铃。闹铃铃声有4种,如上图右侧图片所示,铃声由蜂鸣器产生,铃声1对应“滴”,铃声2对应“滴、滴”,铃声3和4依此类推。当闹钟时间到来的时候,产生闹铃,如图61.2.6.4所示:
http://www.openedv.com/upload/2013/5/17/d06b215a7acaa195e52a4c7cac59377a_270.png
图61.2.6.4 闹铃和语言设置       上图中,左侧的图片显示正在闹铃。此时会弹出一个闹钟的对话框,并显示当前时间,同时蜂鸣器发出“滴、滴、滴、滴”的闹铃声(铃声4)。按取消(或TPAD)可以关闭闹钟,按再响,则5分钟后(20:40)继续闹铃。右侧的图片为语言设置界面,系统支持3种语言设置,默认为简体中文,设置为繁体中文/English之后如图61.2.6.5所示:
http://www.openedv.com/upload/2013/5/17/30fdd9cf300563beae36063c9775aafe_662.png
图61.2.6.5 繁体中文和English       上图显示了繁体中文和English的设置,不过本章我们还是以简体中文为例进行介绍。下面,我们来看看数码相框设置和MP3播放模式设置,如图61.2.6.6所示:
http://www.openedv.com/upload/2013/5/17/f5b4a8e0b4086b418d3df71d0cf439d5_685.png
图61.2.6.6 数码相框设置和MP3播放模式设置       前面提到数码相框支持全部循环播放和随机播放两种模式,就是通过上图左侧的界面设置的。而MP3的三个播放模式,则通过右侧的界面进行设置。接下来看看MP3音效设置和FM发射开关设置,如图61.2.6.7所示:
http://www.openedv.com/upload/2013/5/17/a7edcb5b6d9b474832ec29cbdccdc3b3_4.png
图61.2.6.7 MP3音效设置和FM发射开关设置       上图中,左侧的界面我们可以设置MP3播放的音效(VS1053的设置),包括音量、高低音以及空间效果等,大家可以根据自己喜欢设置,以上为默认设置。右侧的FM发射开关设置,用来设置是否开启FM发射,默认设置为开启,即只要不是收音机模式,其他所有界面FM发射都是开启的,这样我们就可以通过收音机来听到来自STM32开发板的声音了。
       下面我们看看FM发射频率设置和FM收音设置,如图61.2.6.8所示:
http://www.openedv.com/upload/2013/5/17/17d041abe38211ffe315df4f065f7d65_749.png
图61.2.6.8 FM发射频率设置和FM收音设置       上图中,左侧的界面用于设置FM发射频率,用于设置FM发射频点,我们默认的频率是93.6Mhz,所以大家的收音机请调到93.6Mhz(默认频率),以接听来自开发板的声音。右侧的图片用于设置FM收音是否开启后台播放的功能。
接下来,我们看看背光设置和屏幕校准,如图61.2.6.9所示:
http://www.openedv.com/upload/2013/5/17/fd5b34afc7b16781cd83fdc88cd7e817_276.png
图61.2.6.9 背光设置和屏幕校准       上图中,左侧的界面用于设置LCD背光的亮度,默认我们是设置为最亮的,大家可以根据自己的喜欢设置背光亮度,背光亮度控制是通过PWM控制的。
右侧为触摸屏校准界面,这个校准界面和手机校准界面基本类似,校准的时候,请用触笔(或者其他尖一点的东西)依次点击4个十字圈的最中心(图中只是第一个,如果点击了第一个会自动弹出第二个,总共4个),在4个校准点都准确点击之后,系统提示校准成功字符串:Touch Screen Adjust OK!。如果校准失败,则提示失败信息,请重新校准,直到校准成功,如果多次校准都不成功,有可能你的触摸屏有问题了!
另外,在该界面下,如果连续10秒没有输入的话,系统会自动退出校准界面,当然,我们也可以按TPAD直接退出。
       接下来,我们看看传感器校准和系统文件更新,如图61.2.6.10所示:
http://www.openedv.com/upload/2013/5/17/1233a26ec854a862313b7f9e6e0a5601_754.png
图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所示:
http://www.openedv.com/upload/2013/5/17/5322badc0e5285b5e19d7b4a6bfecdde_954.png
图61.2.6.11 系统文件更新和系统信息       上图中,左侧的界面显示了系统文件正在更新,该界面显示了当前更新的文件夹以及文件和进度等信息。右侧的界面为系统信息界面,通过该界面,可以看到软硬件的详细信息。
       最后,我们来看看系统状态和关于界面,如图61.2.6.12所示:
http://www.openedv.com/upload/2013/5/17/a6b43dc5f877a733d6e9e1266bb9ae63_548.png
图61.2.6.12 系统状态和关于界面       上图中,左侧的界面显示了当前系统资源状况,显示了当前CPU使用率,CPU温度以及内存使用率。图为后台正在播放MP3的时候资源使用情况,当播放高码率的歌曲的时候,CPU使用率会大增(如播放wav,则CPU使用率在60%左右)。
       右侧的图片显示了战舰STM32开发板的软硬件版本以及产品序列号,这个序列号是全球唯一的,每个开发板都不一样。
61.2.7 FC游戏机
       战舰STM32开发板综合实验移植了NES模拟器,可以运行nes游戏,双击主界面的系统设置图标,进入文件浏览界面,如图61.2.7.1所示:
http://www.openedv.com/upload/2013/5/17/6e222a89c00e3eaa1947e07ef1094cdd_115.png
图61.2.7.1 文件浏览和小蜜蜂游戏       左侧为nes文件浏览界面,我们随便选择一个打开即可开始游戏了,记得插上手柄哦!右侧的图片为小蜜蜂游戏的界面,当然还可以玩很多其他经典游戏,如下面的图片所示:
http://www.openedv.com/upload/2013/5/17/fa5883bc2b1fed5a5ca1b211aefde906_684.png
图61.2.7.2 超级玛丽和90坦克http://www.openedv.com/upload/2013/5/17/85875090dce3d599fdcc9bb0764cd3df_288.png
图61.2.7.3 超时空要塞和中国象棋http://www.openedv.com/upload/2013/5/17/34b1f5c7b577c5fdfb687fb7b8111d85_223.png
图61.2.7.4 马戏团和淘金者       这里,我们仅列出了几种游戏,这都是80后童年时玩的经典游戏,如今,在战舰STM32开发板上,大家可以回味一下当年的经典了。
       不过,我们提供的nes模拟器,由于代码问题,对大于50KB的nes文件基本不支持,不过即使这样,还是有很多游戏可玩的。另外也没有加入声音输出。如果对nes模拟器有兴趣的朋友可以完善一下这两方面,我们在光盘提供了相关资料可供研究。
 
61.2.8收音机
       双击主界面的收音机图标,进入收音机界面,如图61.2.8.1所示:
http://www.openedv.com/upload/2013/5/17/aeba351deb86ef03c92acd1f4f4d0bc8_363.png
图61.2.8.1 收音机主界面和模式选择界面       上图中,左侧图片为收音机的主界面,显示了当前频率、单/双声道、信号强度、音量、电台编号(自动搜台的时候自动保存)等信息,界面下方的5个按钮分别是:模式选择、频率减(或上一个电台)、暂停/继续收音、频率增(或下一个电台)和返回。右侧的图片为按了模式选择后弹出的界面,选择模式设置/频段选择并按确认后,得到如图61.2.8.2所示:
http://www.openedv.com/upload/2013/5/17/789233c9ee52ee5e7a55a6c02c00836a_246.png
图61.2.8.2 模式设置和频段选择界面       上图中,左侧的图片为模式设置界面,总共有3个模式可以设置:手动搜台、半自动搜台和全自动搜台。
       手动搜台:完全手动搜索,通过频率增/减两个按钮调节频率。
       半自动搜台:此时频率增/减分别代表查找下一个/上一个电台,只要按一下按钮,收音机自动查找下一个/上一个电台,找到有效电台即停止搜索,并播放这个有效电台。
       全自动搜台:选中之后,收音机从最小频率开始找台,一直搜索到最大频率,把整个过程中的有效电台记录下来,搜索完毕,可以从主界面的“CH:”看到总有效电台的个数,可以通过频率增/减按钮来跳转电台。
       右侧的图片为频段选择界面,本收音机支持3个频段:日本频段(76Mhz~91Mhz)、欧美频段(87~108Mhz,也是中国电台使用的频段)、扩展频段(76Mhz~108Mhz)。默认设置为欧美频段。
       收音机可以后台工作,只要您在系统设置里面开启了后台收音。如果没有开启后台收音,在按返回键之后,收音机将自动关闭。
       本收音机使用起来还是比较简单,使用时,请把天线拉出,如果搜不到台,一般是因为你所处环境干扰太大,建议去空旷地方试试。
61.2.9记事本
       双击主界面的记事本图标,首先弹出模式选择对话框,如图61.2.9.1所示:
http://www.openedv.com/upload/2013/5/17/772cc37a13fedf6a9424bdc7b77d7aab_750.png
图61.2.9.1 模式选择和新建文本文件       记事本支持2种模式:1,新建文本文件,这种方式完全新建一个文本文件(以当前系统时间命名),用来输入信息。2,打开已有文件,这种方式可以对已有的文件进行编辑。
       上图中,右侧的界面为我们选择新建文本文件后的界面,此时出现一个空白编辑区和一个闪烁的光标,我们通过下方的键盘输入信息即可,这个输入键盘和我们的手机键盘十分类似,输入方法也是一模一样,支持中文、字母、数字和手写识别输入等几种输入方式。中文输入和标点符号输入,如图61.2.9.2所示:
http://www.openedv.com/upload/2013/5/17/dd25bf93abfcbb0dbc4689d4041ea11d_211.png
图61.2.9.2中文输入和标点符号输入       中文输入就是我们前面T9拼音输入法实验的具体运用。该键盘还支持英文输入和手写识别输入,如图61.2.9.3所示:
http://www.openedv.com/upload/2013/5/17/eeeee0a3a6732ed10a3386f994d6358a_699.png
图61.2.9.3中文输入和标点符号输入       上图中,左侧的图片为英文输入界面,比较简单;右侧的图片为手写识别的输入界面,这里我们也是用到前面手写识别实验的知识实现的。
       只要新建文本文件有被编辑过,那么在返回(按TPAD返回)的时候,系统会提示是否保存,如图61.2.9.4所示:
http://www.openedv.com/upload/2013/5/17/80bc6edc36dc6434a90f749f8b2c9045_824.png
图61.2.9.4保存提示和编辑已有文件       上图中,左侧图片为提示保存界面,如果选择确定,该文件将被保存在SD卡根目录的TEXT文件夹里面。右侧图片为打开已有文件进行编辑的界面,这样我们就可以在战舰STM32开发板上编辑.txt/.h/.c/.lrc文件了。
61.2.10运行器
双击主界面的运行器图标,首先进入文件浏览界面,如图61.2.10.1所示:
http://www.openedv.com/upload/2013/5/17/390b2bfc792145f366aa18fcf1d64c49_557.png
图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所示:
http://www.openedv.com/upload/2013/5/17/a60080a4c1af2698a70f341ae425399d_622.png
图61.2.11.1文件浏览和运行警告       左侧的图片为我们刚进入是的界面(假设板子是水平放置的),此时可以看到X/Y/Z三个方向的角度基本都是0,屏幕中心为一个立方体图形,该图形会随着角度的变化而变化。右侧的图片,显示了我们后我们把板子倾斜一定角度放置时的情况,可以看到X/Y/Z角度都发生了变化,而且立方体图形也产生了变化。
       我们还可以通过触摸屏来控制立方体的转动,直接在屏幕滑动即可看到立方体随着我们的滑动而改变方向(视角)。
 

 发现本坛一个奇葩问题,无人能回复我这个帖子了!!!
因为标题长度不能超过120字......

有事烧纸 发表于 2015-4-20 01:10:57

回复这个帖子

intech2008 发表于 2015-4-21 21:23:09

楼主强大!

vhhh 发表于 2018-6-15 09:41:15

积分用完了

vhhh 发表于 2018-6-15 09:41:54

很不错

飞蛾扑火我饿后果 发表于 2020-11-17 09:16:46

为啥文件里没有stm32f10x_map.h头文件?

飞蛾扑火我饿后果 发表于 2020-11-17 09:27:53

:lol:lol:lol
页: [1]
查看完整版本: 【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第六十一章 战舰STM32开发板综合实验(标准例程终结篇)