STM32/STM8技术论坛
直播中

正点原子运营官

5年用户 1793经验值
擅长:模拟技术 嵌入式技术 控制/MCU
私信 关注
[经验]

正点原子STM32F407探索者开发板资料连载第六十四章 综合实验

1)实验平台:alientek 阿波罗 STM32F767 开发板
2)摘自《STM32F7 开发指南(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子


第六十四章 探索者 STM32F4 开发板综合实验
前面已经给大家讲了 58 个实例了,本章将设计一个综合实例,作为本手册的最后一个实验
,该实验向大家展示了 STM32F4 的强大处理能力,并且可以测试开发板的大部分功能。该实
验代码非常多,涉及 GUI(ALIENTEK 编写,非 ucGUI)、UCOSII、内存管理、图片解码、视
频解码(AVI)、音频解码(软解 WAV/MPE/APE/FLAC)、文件系统、USB(主机和从机)、IAP、
LWIP(TCP/UDP/Web Server)、陀螺仪(MPU6050)、NES 模拟器、手写识别、汉字输入等非
常多的内容,故本章不讲实现和代码,只讲功能,本章将分为如下几个部分:
64.1 探索者 STM32F4 开发板综合实验简介
64.2 探索者 STM32F4 开发板综合实验详解
64.1 探索者 STM32F4 开发板综合实验简介
探索者 STM32F4 开发板是 ALIENTEK 的第三款 STM32 开发板(之前有 MiniSTM32 和战
舰 STM32 开发板),也是第一款基于 STM32F4 的开发板,其性能比 STM32F1 强不少,该开发
板的出现,为大家提供了一个更强大的 STM32 开发板平台。
探索者 STM32F4 开发板的硬件资源在第一章我们已经详细介绍过,是十分强大的,强大
的硬件必须配强大的软件才能体现其价值,如果 iPhone 装的是 andriod 而不是 ios,iPhone 就不
是那个 iPhone 了,可能早就被三星打败了。同样,如果开发板只是一堆硬件,那就和一堆废品
差不多。
探索者 STM32F4 开发板的功能在战舰 STM32 开发板的基础上进行了扩展,功能更强大了。
探索者 STM32F4 开发板综合实验总共有 19 大功能,分别是:电子图书、数码相框、音乐
播放、视频播放、时钟、系统设置、FC 游戏机、记事本、运行器、手写画笔、照相机、录音机、
USB 连接、网络通信、无线传书、计算器、拨号、应用中心和短信。
电子图书,支持.txt/.c/.h/.lrc 等 4 种格式的文件阅读。
数码相框,支持.bmp/.jpeg/.jpb/.gif 等 4 种格式的图片文件播放。
音乐播放,支持.mp3/.wav/.ape/.flac 等 4 种常见音频文件的播放,全部软解码实现。
视频播放,支持.avi 格式(MJPEG 编码)的视频播放(带音频),也是软解码实现。
时钟,支持温度、时间、日期、星期的显示,同时具有指针式时钟显示。
系统设置,整个综合实验的设置。
FC 游戏机,支持绝大部分 NES 游戏(.nes),支持 USB 手柄/键盘控制,带声音,超 InfoNES。
记事本,可以实现文本(.txt/.c/.h/.lrc)记录编辑等功能,支持中英文输入,手写识别。
运行器,即 SRAM IAP 功能,支持.bin 文件的运行(文件大小+SRAM 大小≤120K)。
手写画笔,可以作画/对 bmp 图片进行编辑,支持画笔颜色/尺寸设置。
照相机,可以拍照(.bmp/.jpg 格式,需摄像头模块支持),并支持成像效果设置。
录音机,支持 wav 文件格式的录音(8~48Khz/16 位立体声录音),支持 AGC 设置。
USB 连接,支持和电脑连接读写 SD 卡/SPI FLASH 的内容。
网络通信,LWIP,支持 10/100M 自适应,支持 DHCP,支持 UDP/TCP/Web Server 测试。
无线传书,通过无线模块,实现两个开发板之间的无线通信。
计算器,一个科学计算器,支持各种运算,精度为 12 位,支持科学计数法表示。
拨号,支持拨打电话(需要 GSM 模块支持)。
应用中心,可扩展 16 个应用程序,我们实现了其中 2 个(红外遥控&陀螺仪),其他预留。
短信,支持短信读取、发送、删除等操作(需要 GSM 模块支持)。
以上,就是综合实验的 19 个功能简介,涉及到的内容包括:GUI(ALIENTEK 编写,非
ucGUI)、UCOSII、内存管理、图片解码、音频解码、视频解码、文件系统、USB(主机&从机)、
IAP、LWIP(TCP/UDP/Web Server)、陀螺仪(MPU6050)、NES 模拟器、手写识别、汉字输入
等非常多的内容。下面,我们将详细介绍这 19 个功能。
64.2 探索者 STM32F4 开发板综合实验详解
要测试探索者 STM32F4 开发板综合实验的全部功能,大家得自备 1 个 SD 卡、1 个 U 盘、
1 根网线、一个耳机/喇叭、1 个 GSM 模块和 1 个 ALIENTEK OV2640 摄像头模块。不过,就
算没有这两个东西,综合实验还是可以正常运行的,只是有些限制而已,比如:不能保存新建
的记事本、不能保存新建的画图、不能使用录音机功能、不能使用摄像头功能、不能拨号、不
能收发短信等。除了这几个,其他功能基本都可以正常运行。
预备知识:
1,系统支持:ALIENTEK 2.8 寸电阻屏、ALIENTEK 3.5 寸电阻屏和 ALIENTEK 4.3 寸
电容屏,自动识别。
2,系统针对不同分辨率的屏幕,不同界面,会采用不同的字体和图标,以达到最佳效果。
3,系统主界面,对于 2.8 寸和 3.5 寸液晶模块,将会有 2 页,通过滑动切换。每页 8 个图
标+底部 3 个固定图标,总共 19 个。对于 4.3 寸液晶模块,直接就是 1 页,4.3 寸屏不支持滑动。
4,系统测试有可能需要比较大电流(4.3 屏、网络、外接喇叭)供电,强烈建议使用外部
电源供电。
5,系统要用到 USB 通信(接 U 盘/USB 手柄/USB 键盘),请将开发板 P11 端子的 D+和
D-分别连接到 PA12 和 PA11。
有了以上预备知识,我们先来看看探索者 STM32F4 开发板综合实验的启动界面,启动界
面如图 64.2.1 所示:


图 64.2.1 综合实验启动界面
注意:综合实验支持屏幕截图(通过 USMART 控制,波特率为 115200),本章所有图片均
来自屏幕截图!
图 64.2.1 总共有 3 个截图拼成,分别代表 2.8 寸、3.5 寸和 4.3 寸屏模块,显示内容都一样,
但是图标大小和文字大小各不相同。图片显示了综合实验的详细启动过程,首先显示了版权信
息,软硬件版本,接着显示了 LCD 驱动器的型号(LCD ID),然后显示 CPU 和内存信息,之
后显示 SPI FLASH 的大小,接着开始初始化 RTC 和文件系统(FATFS),然后显示 SD 卡容量、
FLASH Disk 容量(注意 FLASH Disk 就是指 SPI FLASH,因为我们划分了 12M 空间给 FATFS
管理,所以 FLASH Disk 的容量为 12264KB)和 U 盘容量。
接着,就是硬件检测,完了之后检测字库和系统文件,再初始化触摸屏,加载系统参数(参
数保存在 24C02 里面),最后启动系统。在加载过冲中,任何一个地方出错,都会显示相应的
提示信息,请在检查无误后,按复位重启。
这里有几个注意的地方:
① 如果没插入 SD 卡/U 盘,其容量显示 0,并提示 ERROR,不过系统还是会继续启动,
因为没有 SD 卡/U 盘系统还是可以启动的(前提是 SPI FLASH(W25Q128)里面的系
统文件和字库文件都是正常的)。
② 系统文件和字库文件都是存在 SPI FLASH(W25Q128)里面的,如这些文件被破坏了,
在启动的时候,会执行字库和系统文件的更新,此时你得准备一个 SD 卡/U 盘,并拷
贝 SYSTEM 文件夹(注意:这个 SYSTEM 文件夹不是开发板例程里的 SYSTEM 文件
夹,而是光盘根目录→SD 卡根目录文件→SYSTEM 文件夹)到 SD 卡根目录,以便系
统更新时使用。
③ FLASH Disk 是从 SPI FLASH(W25Q128)里面分割 12M 空间出来实现的,强制将 4K
字节的扇区改为 512 字节使用,所以在写操作的时候擦除次数会明显提升(8 倍以上),
因此,如非必要,请不要往 FLASH Disk 里面写文件。频繁的写操作,很容易将 FLASH
Disk 写挂掉。
④ 在系统启动时,一直按着 KEY0 不放(加载到 Touch Check 的时候),可以进入强制校
(仅电阻屏支持)。当你发现触摸屏不准的时候,可以使用这个办法强制校准。
⑤ 在系统启动时,一直按着 KEY1 不放(加载到 Font Check 的时候),可以强制更新字库。
⑥ 在系统启动时,移植按着 KEY2 不放(加载到 FLASH 容量时),可以选择是否擦除所
有文件(清空 SPI FLASH),当需要重新更新的时候,建议先用此方法擦除,再更新。
⑦ 本系统用到触摸按键 TPAD 做返回(类似手机的 HOME 键,TPAD 在开发板右下角,
白色的骷髅头丝印,该区域是触摸按键区域!!手指轻轻一摸,即可返回),所以请确
保多功能端口 P12 的 ADC 和 TPAD 用跳线帽短接!
⑧ 如果插入了 SD 卡,系统在启动的时候,会在 SD 卡的根目录创建 4 个文件夹:TEXT、
RECORDER、PAINT 和 PHOTO。其中,TEXT 文件夹用来保存新建的文本文件(记
事本功能时使用);RECORDER 文件夹用来保存录音文件(录音机功能时使用);PAINT
文件夹用来保存新建的画板文件(手写画笔功能时使用);PHOTO 文件夹用来保存相
片(照相机功能时使用)。
⑨ 如果插入了 U 盘,且没有插入 SD 卡,那么在执行文件保存的时候,会在 U 盘创建和
SD 卡一样的文件夹(TEXT、RECORDER、PAINT 和 PHOTO 等),然后将文件保存
到 U 盘(如果插入 SD 卡,默认就存 SD 卡了!)。
在 SYSTEM Starting…之后,系统启动 UCOSII,并加载 SPB 界面,在加载成功之后,来到
主界面,主界面如图 64.2.2~64.2.4 所示:


图 64.2.2 综合实验系统主界面(2.8 屏版本)


图 64.2.3 综合实验系统主界面(3.5 屏版本)


图 64.2.4 综合实验系统主界面(4.3 屏版本)
从上面三张图可以看出,2.8 屏和 3.5 屏主界面有 2 个页面(滑动切换),而 4.3 屏的只有 1
个页面(不支持滑动),总共是 19 个图标。每个图标代表一大功能,主界面顶部具有状态栏,
显示 GSM 模块信号质量、运营商、SD 卡状态、U 盘状态、CPU 使用率和时间等信息。注意:GSM 模块信号质量和运营商,必须是接了 ATK-SIM900A GSM 模块后,才可能正
常显示的,否则信号质量显示灰色,运营商显示:无移动网。
ALIENTEK ATK-SIM900A GSM 模块与开发板的连接有两种方式:
1,通过 RS232 串口线连接。将开发板配套的 RS232 串口线,连接 GSM 模块的 RS232 串
口和开发板的 COM3 即可完成连接,注意:开发板 P10 端子的 COM3_TX 与 PB11(RX)和
COM3_RX 与 PB10(TX)必须用跳线帽短接!!
2,通过杜邦线连接。将开发板 P10 端子的两个跳线帽拔了,然后用杜邦线将开发板的
PB11(RX)接 GSM 模块的 STXD 脚,将开发板的 PB10(TX)接 GSM 模块的 SRXD 脚。最后共地,
开发板上随便找一个 GND 用杜邦线和 GSM 模块的 GND 连接起来。
只有 GSM 模块连接好,SIM 卡正常,且长按 GSM 模块的 PWR_KEY 开机后,开发板才
会显示如图 64.2.4 所示的信号质量和运营商,才可以进行拨号和短信功能测试!!如果不显示
信号质量和运营商,请检查是否有 GSM 模块,或者 GSM 模块是否工作正常!
会到主界面,主界面默认是简体中文的,我们可以在系统设置里面设置语言,探索者
STM32F4 开发板综合实验支持 3 种语言选择:简体中文、繁体中文和英文。
在进入主界面之后,开发板上的 DS0 开始有规律的短亮(每 2.5 秒左右亮 100ms),提示系
统运行正常,我们可以通过 DS0 判断系统的运行状况。另外,如果运行过程中,出现 HardFault
的情况,系统则会进入 HardFault 中断服务函数,此时 DS0 和 DS1 都会闪烁,提示系统故障。
同时在串口打印故障信息。通过串口,系统会打印其他很多信息,最常打印的是内存使用率,
然后我们还可以通过 USMART 对系统进行调试。
我们可以通过点击任何一个图标,选中,然后再次点击,即可进入该图标的功能。接下来,
我们主要以 4.3 屏为例,给大家讲解综合实验。2.8 屏和 3.5 屏操作基本一模一样,下面就不再
分别贴图了。
在任何界面下,都可以通过按 TPAD 返回上一级,直至返回到主界面。PS:TPAD 就是探索
者 STM32F4 开发板上的一个触摸按键,即右下角的白色骷髅头!!
在介绍完系统启动之后,我们开始介绍各个功能。
64.2.1 电子图书
双击主界面的电子图书图标,进入如图 64.2.1.1 所示的文件浏览界面:


图 64.2.1.1 文件浏览界面
上图中,左侧的图是我们刚刚进入的时候看到的界面(类似在 XP/WIN7 上打开我的电脑),
可以看到我们有 3 个盘,磁盘名字分别是:正点原子、ALIENTEK 和广州星翼。正点原子是我
们 SD 卡的卷标(即磁盘名字),ALIENTEK 是板载 SPI FLASH 磁盘的卷标,广州星翼是我们
插入的一个 U 盘的卷标。注意:如果没有插入 SD 卡和 U 盘,则只会显示 ALIENTEK 这一个
卷标。我们可以选择任何一个磁盘打开,并浏览里面的内容。
界面的上方显示文件/文件夹的路径。如果当前路径是磁盘/磁盘根目录则显示磁盘图标,
如果是文件夹,则显示文件夹图标,另外,如果路径太深,则只显示部分路径(其余用…代替)。
界面的下方显示磁盘/文件夹信息。
界面的下方,显示磁盘信息/当前文件夹信息。对磁盘,则显示当前选中磁盘的总容量和可
用空间,对文件夹,则显示当前路径下文件夹总数和文件总数,并显示你当前选中的是第几个
文件夹/文件。
双击打开 SD 卡,得到界面如右侧图片所示,选中一个文件夹,双击打开得到如图 64.2.1.2
所示界面:


图 64.2.1.2 目标文件和文本阅读
上图左侧显示了当前文件夹下面的目标文件(即电子图书支持的文件,包括.txt/.h/.c/.lrc 等
格式,其中.txt/.h/.c 文件共用 1 个图标,.lrc 文件单独一个图标)。另外,如果文件名太长,在
我们选中该文件名后,系统会以走字的形式,显示整个文件名。
我们打开一个 txt 文件,开始文本阅读,如图右侧的图片所示,同样我们可以通过滚动条/
拖动的方式来浏览,图中我们还看到有一个光标,触摸屏点到哪,它就在哪里闪烁,可以方便
大家阅读。
文本阅读是将整个文本文件加载到外部内存里面来实现的,所以文本文件最大不能超过外
部内存总大小,即 960KB(这里仅指受内存管理的部分,不是整个外部 SRAM 的大小)。
当我们想退出文本阅读的时候,通过按 TPAD 触摸按键实现,按一下 TPAD,则又回到查
找目标文件状态(左侧图),按返回按钮可以返回上一层目录,如果再按一次 TPAD 则直接返
回主界面。
64.2.2 数码相框
双击主界面的数码相框图标,进入文件浏览界面,这个和 64.2.1 节差不多,我们找到存放
图片的文件夹,如图 64.2.2.1 所示:


图 64.2.2.1 文件浏览和图片播放
左侧是文件浏览的界面,可以看到在 PICTURE 文件夹下总共有 27 个文件,包括 gif/jpg/bmp
等,这些都是数码相框功能所支持的格式。右侧图片显示了一个正在播放的 GIF 图片,并在其
左上角显示当前图片的名字。当然,我们也可以播放 bmp 和 jpg 文件,如图 64.2.2.2 所示:


图 64.2.2.2 bmp 和 jpg 图片播放
对于 bmp 和 jpg 文件,基本没有尺寸限制(但图片越大,解码时间越久),但是对于 gif 文
件,则只支持尺寸在 LCD 分辨率以内的文件(因为 gif 图片我们不好做尺寸压缩处理),超过
这个尺寸的 gif 图片将无法显示!!
我们可以通过按屏幕的上方(1/3 屏幕)区域切换到上一张图片浏览;通过按屏幕的下方
(1/3 屏幕)区域切换到下一章图片;通过单击屏幕的中间(1/3 屏幕)区域可以暂停自动播放,
同时 DS1 亮,提示正在暂停状态,同样,通过按 TPAD 按钮,可以返回文件浏览状态。
图片浏览支持两种自动播放模式:循环播放/随即播放。大家可以在系统设置里面设置图片
播放模式。系统默认是循环播放模式,在该模式下,每隔 4 秒左右自动播放下一张图片,依次
播放所有图片。而随机播放模式,也是每隔 4 秒左右自动播放下一张图片,但是不是顺序播放,
而是随机的播放下一张图片。
64.2.3 音乐播放
探索者 STM32F407 开发板综合实验的音乐播放器性能非常强悍,可作为 HIFI 播放器使用。
支持常见的无损音乐(wav/flac/ape)播放,具体性能如下:
wav 文件:支持最高 192K@24bit 播放。
mp3 文件:全码率支持
flac 文件:支持最高 192K@16bit,或者 96K@24bit 播放
ape 文件:最高支持 96K@16bit(LEVEL1 压缩)播放
注意:如果是播放 U 盘的音乐,建议不要播放采样率太高的音频,否则可能导致播放不正
常(建议在 48K 及以下比较好)。
双击主界面的音乐播放图标,进入文件浏览界面,这个和 64.2.1 节差不多,只是这里我们
浏览的文件变为了.wav/.mp3/.flac/.ape 等音频文件,我们找到存放音频文件的文件夹,如图
64.2.3.1 所示:


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


图 64.2.3.2 mp3 格式播放和 flac 格式播放
图 64.2.3.2 中,分别显示了播放 mp3 格式和 flac 格式的音频文件。。
播放器还可以设置音效和播放模式(均在系统设置里面设置)。音效包括 5 段 EQ、3D 效
果等设置。播放模式有 3 种:全部循环、随机播放、单曲循环,默认为全部循环。
另外,关于歌词显示。歌词必须和歌曲在同一个文件夹里面,且名字必须相同(当然后缀
是不同的,歌词后缀为.lrc),这样才能正常显示歌词。对于没有歌词文件的歌曲,则直接播放,
不显示歌词。歌词采用多行显示,中间为当前正在演唱的歌词(粉红色字体显示),上下分别有
预览歌词(白色字体显示),如果正在演唱的歌词太长,则会采用走字的形式来显示,走字时间
由系统自动确定。
我们可以通过按目录按钮,来选择其他音频文件;按返回按键(或 TPAD)则可以返回主
界面,不过此时正在播放的歌曲还是会继续播放(后台播放),如果想关闭音乐播放器,则需要
先按暂停,然后返回主界面,即可关闭音频播放器,否则音频播放器将一直播放音乐。
本音乐播放器支持多种无损音频格式播放,前面介绍了 wav 和 flac。Wav 和 flac 是支持 24bit
播放的,不过 ape 则只支持 16bit 播放。最后,看看 ape 文件的播放,如图 64.2.3.3 所示:


图 64.2.3.3 ape 格式播放
注意,需要外接耳机(插入 PHONE 端子)或者喇叭(接 SPK,P1 端子)才可以欣赏音乐
哦!!!耳机和喇叭需自备。
64.2.4 视频播放
探索者 STM32F407 开发板的综合实验支持视频播放(带声音),软解码 avi 文件,实现视
频播放。支持的视频格式为:.avi,视频必须使用 MJPEG 压缩,音频采用线性 PCM 编码(无
压缩)。视频分辨率必须小于等于屏幕分辨率,对于综合实验来说:2.8 寸屏,最大支持 240*164
分辨率的视频;3.5 寸屏,最大支持 320*296 分辨率的视频;4.3 寸屏,最大支持 480*550 分辨
率的视频。特别提醒:一般网络下载的视频文件(.avi/.rmvb/.mkv/.mp4 等),本播放器不支持,
必须通过软件转换(狸窝全能视频转换器),才可以,详细转换方法,见 50.4 节。
双击主界面的视频播放图标,进入文件浏览界面,这个和 64.2.1 节差不多,只是这里我们
浏览的文件变为了.avi 的视频文件,我们找到存放视频文件的文件夹,如图 64.2.4.1 所示:


图 64.2.4.1 文件浏览和 avi 视频播放
左侧是文件浏览的界面,可以看到在视频文件夹下总共有 21 个视频文件。右侧图片则是我
们视频播放器的主界面,该界面显示了当前播放视频的名字、播放进度、播放时长、总时长、
音频采样率、视频帧率、视频分辨率、音量、当前文件编号、总文件数等信息。下方的 5 个按
键分别是:目录、上一个视频、暂停/播放、下一个视频、返回。点击视频播放进度条,可以直
接设置视频播放位置,点击声音进度条,可以设置音量。
视频播放器还可以设置音效和播放模式(均在系统设置里面设置)。音效包括 5 段 EQ、3D
效果等设置。播放模式有 3 种:全部循环、随机播放、单曲循环,默认为全部循环。
我们可以通过按目录按钮,来选择其他视频文件;按返回按键(或 TPAD)则可以返回主
界面。视频播放不支持后台播放,所以一旦退出到文件浏览或者主界面,则停止视频播放。
在图 64.2.4.1 中,右侧图片播放的是 480*272 的视频,帧率为 10 帧/秒。对于小分辨率的
视频,帧率可以更快一些,比如 320*240 的可以去到 25 帧,240*160 的可以去到 30 帧,如图
64.2.4.2 所示:


图 64.2.4.2 视频播放
注意,需要外接耳机(插入 PHONE 端子)或者喇叭(接 SPK,P1 端子)才可以听到视频
的声音哦!!!耳机和喇叭需自备。
64.2.5 时钟
双击主界面的时钟图标,进入时钟界面,如图 64.2.5.1 所示:


图 64.2.5.1 时钟界面
图 64.2.5.1 的左侧图片为加载时钟界面时的提示界面,表明没有检测到 DS18B20,启用
MPU6050 的内部温度传感器,之后进入时钟主界面,如右侧图片所示。在时钟界面,我们显示
了日期、时间、温度、星期等信息,并且在屏幕上方区域,有一个指针式时钟显示。我们可以
在系统设置里面设置时间和日期,并且还可以设置闹钟和闹铃,这个我们后面再介绍。
同样,按 TPAD 可以返回主界面。
64.2.6 系统设置
双击主界面的系统设置图标,进入系统设置界面,如图 64.2.6.1 所示:


图 64.2.6.1 系统设置主界面和时间设置界面
上图中左侧的图片为系统设置主界面,在系统设置里面,总共有 22 个项目:时间设置、日
期设置、闹钟时间设置、闹钟开关设置、闹钟铃声设置、语言设置、数码相框设置、音乐播放
器模式设置、视频播放器模式设置、WM8978 音量&3D 设置、WM8978 音效 1 设置、WM8978
音效 2 设置、WM8978 音效 3 设置、WM8978 音效 4 设置、WM8978 音效 5 设置、背光设置、
屏幕校准、系统文件更新、恢复默认设置、系统信息、系统状态、关于。通过这 22 个项目,我
们可以设置和查看各种系统参数。下面我们将一一介绍这些设置。
首先是时间设置,如图 64.2.6.1 右侧图片所示,双击时间设置,就会弹出一个时间是指对
话框,通过这个对话框,我们就可以设置开发板的时间了。设置好之后点击确定回到系统设置
主界面,如果想放弃设置,则直接点击取消(或 TPAD)。
再来看看日期设置和闹钟时间设置,如图 64.2.6.2 所示:


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


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


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


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


图 64.2.6.6 数码相框设置和音乐播放器模式设置
前面提到数码相框支持全部循环播放和随机播放两种模式,就是通过上图左侧的界面设置
的。而音乐播放器的三个播放模式,则通过右侧的界面进行设置。接下来看看视频播放器模式
设置 WM8978 音量&3D 设置,如图 64.2.6.7 所示:


图 64.2.6.7 视频播放器模式设置和 WM8978 音量&3D 设置
上图中,左侧的界面可以设置视频播放器的模式:全部循环、随机播放、单曲循环,默认
是全部循环模式,这个设置和音乐播放器的模式一模一样。右侧是 WM8978 音量&3D 效果设
置,可以设置 WM8978 的音量(在此处修改后,将写入 EEPROM 保存,而如果在音频/视频播
放的时候修改音量,是不会保存在 EEPROM 的),同时还可以设置 3D 效果,值越大,3D 效果
越强,默认是 0,即关闭 3D 效果。
下面我们看看 WM8978 的音效设置和背光设置,如图 64.2.6.8 所示:


图 64.2.6.8 WM8978 音效设置和背光设置
上图中,左侧的界面用于设置 WM8978 的音效 1,WM8978 总共支持 5 段 EQ 设置,分别
对应设置界面的:音效 1~音效 5 设置,这里我们仅以音效 1 设置为例,其他的类似。图中的中
心频率,即增益对应的频点,默认是 80Hz,可以通过中心频率滚动条设置(80Hz~175Hz),而
增益默认设置的是 0,也可以通过滚动条设置(范围:-12dB~+12dB)。大家可以根据自己的喜
好,来设置音效以达到最好的音乐享受。注意:系统设置里面对 WM8978 的设置,都是立即
生效的,并且会保存在 EEPROM 里面,当这里设置好之后,其他用到 WM8978 来播放音乐的
程序(音乐播放、视频播放和 NES 游戏等),都会共用这些设置。
右侧的图片用于设置 LCD 背光,背光通过 PWM 控制。当设置为 0 的时候,启动自动(auto)
背光控制,其他值则是固定的背光亮度,值越大越亮。自动背光的时候,通过板载的光敏传感
器(在摄像头座右侧,LS1)采集环境光强,自动调整背光。
第 17 项,屏幕校准,这里因为我们用的是 4.3 寸电容触摸屏为例讲解的,电容屏不需要校
准,所以这个设置对 4.3 屏模块无效。如果是电阻屏,点击该项则可以进入屏幕校准,根据提
示完成校准即可。
接下来,我们看看系统文件更新,如图 64.2.6.9 所示:


图 64.2.6.9 系统文件更新
上图中,左侧是双击系统文件更新提示,这里的系统文件是指 SYSTEM 文件夹里面除字库
文件外的所有内容。探索者 STM32F4 开发板综合例程之所以可以没有 SD 卡也能正常运行,主
要是将 SYSTEM 文件夹(注意这个不是源码里面的 SYSTEM 文件夹!!)拷贝到了 FLASH Disk
(即 W25Q128)里面,这样,我们所有的系统资源都可以从 W25Q128 里面获得,从而正常启
动。
SYSTEM 文件夹目前是包含 151 个文件,总大小为 2.74MB。这些文件一般不要修改,如
果你想自己 DIY 的话,那可以修改这些文件,以达到你要的效果,不过建议修改之前备份一下,
搞坏了还可以还原。
如果在图 64.2.6.9 的系统文件更新提示时选择确定,则会执行系统文件更新,将 SD 卡/U
盘的 SYSTEM 文件夹(拷贝自光盘:5,SD 卡根目录文件 里面的 SYSTEM 文件夹),拷贝到
FLASH Disk 里面。这里有个前提,就是你的 SD 卡/U 盘必须有这个 SYSTEM 文件夹!更新时
界面如图 64.2.6.9 右侧图片所示,该界面显示了当前更新的文件夹以及文件和进度等信息。
接下来,我们看看恢复默认设置和系统信息,如图 64.2.6.10 所示:


图 64.2.6.10 恢复默认设置和系统信息
上图左侧图片为恢复默认设置功能确认界面,当选择确定后,系统将恢复默认设置,除了
RTC 时间日期以外的所有设置,都将恢复默认值,方便大家在设置乱以后,恢复正常。
上图右侧图片为系统信息界面,通过该界面,可以看到软硬件的详细信息。
最后,我们来看看系统状态和关于界面,如图 64.2.6.11 所示:


图 64.2.6.11 系统状态和关于界面
上图中,左侧的界面显示了当前系统资源状况,显示了当前 CPU 使用率,CPU 温度以及
内存使用率。。
右侧的图片显示了探索者 STM32F4 开发板的软硬件版本以及产品序列号,这个序列号是
全球唯一的,每个开发板都不一样。
64.2.7 FC 游戏机
探索者 STM32F4 开发板综合实验移植了一个非常强大的 NES 模拟器,核心部分采用汇编
实现,效率极高,支持音频输出,支持 MAP,支持绝大部分 NES 游戏的运行。综合性能超过
infoNES。该模拟器由开源电子网(www.openedv.com)论坛网友:ye781205 编写,然后 ALIENTEK
移植到了探索者 STM32F4 开发板上,即 FC 游戏机。
该 FC 游戏机特点如下:
1, 支持 MAP,可运行绝大部分小于 960K 的 NES 游戏。
2, 支持 USB 手柄(目前已测试了迪龙 PU201、PU401、PU701、蓝觉 L600、酷孩 USB
无振动手柄等)。
3, 支持 USB 键盘输入,可双人游戏。键盘按键与手柄功能对应关系如表 64.2.7.1 所示。
4, 支持声音输出(音效远超 infoNES)。
5, 支持全速运行(60 帧),在 4.3 寸屏会放大 4 倍处理(480*480 分辨率)。


表 64.2.7.1 USB 键盘按键与手柄功能对应关系
上表中的 3、6、2、5 等数字,是指小键盘的数字按键。另外,需要注意:玩 NES 游戏的
时候,USB_SLAVE 不要插电脑,否则无法识别 USB 键盘/USB 手柄!!!
双击主界面的系统设置图标,如果当时插着 U 盘,屏幕将提示:请先拔掉 U 盘。然后,会
提示:请插入 USB 手柄/键盘。然后进入 nes 文件浏览界面,如图 64.2.7.1 所示:


图 64.2.7.1 文件浏览和超级玛丽游戏
在检测到 USB 手柄/键盘插入后,屏幕会提示:检测到 USB 手柄/键盘。 这个检测是一直
开启的,只要插入 USB 手柄/键盘,就会被系统检测到。
上图中,左侧为 nes 文件浏览界面,我们随便选择一个打开即可开始游戏了,记得插上手
柄哦!右侧的图片为经典的超级玛丽游戏界面,当然还可以玩很多其他经典游戏,如下面的图
片所示:


图 64.2.7.2 冒险岛和魂斗罗


图 64.2.7.3 三木童子和双截龙


图 64.2.7.4 ***人和 SD 快打


图 64.2.7.5 洛克人和 90 坦克
这里,我们仅列出了几种游戏,这都是 80 后童年时玩的经典游戏,如今,在探索者 STM32F4
开发板上,大家可以回味一下当年的经典了。
64.2.8 记事本
双击主界面的记事本图标,首先弹出模式选择对话框,如图 64.2.8.1 所示:


图 64.2.8.1 模式选择和新建文本文件
记事本支持 2 种模式:1,新建文本文件,这种方式完全新建一个文本文件(以当前系统时
间命名),用来输入信息。2,打开已有文件,这种方式可以对已有的文件进行编辑。
上图中,右侧的界面为我们选择新建文本文件后的界面,此时出现一个空白编辑区和一个
闪烁的光标,我们通过下方的键盘输入信息即可,这个输入键盘和我们的手机键盘十分类似,
输入方法也是一模一样,支持中文、字母、数字和手写识别输入等几种输入方式,如图 64.2.8.2
和图 64.2.8.3 所示:


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


图 64.2.8.3 英文输入和手写识别输入
其中,中文输入就是我们前面 T9 拼音输入法实验的具体运用,而手写识别的输入界面,
我们也是用到前面手写识别实验的知识实现的。
只要新建文本文件有被编辑过,那么在返回(按 TPAD 返回)的时候,系统会提示是否保
存,如图 64.2.8.4 所示:


图 64.2.8.4 保存提示和编辑已有文件
上图中,左侧图片为提示保存界面,如果选择确定,该文件将被保存在 SD 卡/U 盘根目录
的 TEXT 文件夹里面。右侧图片为打开已有文件进行编辑的界面,这样我们就可以在探索者
STM32F4 开发板上编辑.txt/.h/.c/.lrc 文件了。
64.2.9 运行器
双击主界面的运行器图标,首先进入文件浏览界面,如图 64.2.9.1 所示:


图 64.2.9.1 文件浏览和运行警告
上图中,左侧为文件浏览界面,图中显示了可运行的 bin 文件有 3 个,这些全部来自我们
的标准例程对应实验。本运行器支持 120K 字节以内的程序运行(FLASH+SRAM 总共不超过
120K),很多例程都可以生成 SRAM 版本的 bin 文件,在运行器里面运行,这里我们仅提供了
3 个实验的.bin 文件以供大家测试。SRAM 版本.bin 文件的生成办法,请参考串口 IAP 实验
个章节,里面有详细介绍。通过运行器,大家可以直接运行我们大部分例程,而不用再去刷代
码了,方便大家测试和验证我们的实验。
右侧的图片是运行前的警告界面,因为一旦执行.bin 文件,我们的系统将无法恢复,只能
靠复位重启。点击确定之后,STM32 就开始运行你所选择的.bin 文件了,实验现象和对应实验
所描述的现象一模一样。
64.2.10 手写画笔
双击主界面的手写画笔图标,首先弹出模式选择对话框,如图 64.2.10.1 所示:


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


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


图 64.2.10.3 画笔尺寸设置和完成后的画图
图 64.2.10.2 中,左侧的图片为按 KEY_UP 按键后弹出的画笔设置对话框,我们可以选择
对画笔颜色和画笔尺寸进行设置。右侧的图片为画笔颜色设置对话框,在该对话框里面,我们
可以直接在颜色条快速输入要设置的颜色,也可以通过下方的三个滚动条进行精确设置,左侧
的正方形区域为预览区。
图 64.2.10.3 中,左侧为画笔尺寸设置界面,我们可以通过滚动条设置画笔尺寸,对话框显
示了画笔尺寸和对应的预览图。右侧的图片为我们完成的画图文件,在返回主界面(按 TPAD)
的时候,会提示保存,如图 64.2.10.4 所示:


图 64.2.10.4 保存画图和编辑已有位图
上图中,左侧为我们退出时弹出的提示保存对话框,如果选择确定,则新的画图文件将会
被保存在 SD 卡/U 盘的 PAINT 文件夹里面,命名方式是以当前系统的时间命名的,如
PAINT20141023113650.bmp。
右侧的图片为对打开的位图进行编辑的界面,通过这个功能,我们可以在开发板上实现对
一些相片(bmp 格式)进行涂鸦。
64.2.11 照相机
本照相机支持 ALIENTEK OV2640 这款 200W 像素的 CMOS 摄像头模块,本照相机的特点
有:
1, 支持 BMP 拍照(拍下的 bmp 分辨率为 LCD 分辨率),按 KEY2 拍 BMP 照片。
2, 支持 JPG 拍照(默认是 1600*1200 像素(UXGA),可按 KEY_UP 设置拍照分辨率),按
KEY0 拍 JPG 照片。
3, 屏幕显示可以是全景(缩放)或者 1:1 显示(无缩放),默认是全景,通过 KEY1 切换。
4, 支持各种参数设置,包括:场景、特效、曝光、亮度、色度和对比度等。
双击主界面的照相机图标,首先初始化 OV2640 摄像头模块,如图 64.2.11.1 所示:


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


图 64.2.11.2 相机设置和优场景设置


图 64.2.11.3 特效设置和曝光等级设置


图 64.2.11.4 亮度设置和色度设置


图 64.2.11.5 对比度设置和拍照
以上设置,和手机类似,这里就不一一和大家解释了。我们按 KEY0 按键,即可实现 JPG
拍照,JPG 照片的尺寸,默认是 1600*1200 分辨率,可通过 KEY_UP 设置其他分辨率。按 KEY2
按键即可实现 BMP 拍照,BMP 照片的尺寸就是 LCD 的分辨率。在照片保存期间 DS1 亮,保
存完后蜂鸣器发出“滴”的一声,提示拍照成功,同时弹出拍照成功对话框,如上图右侧图片
所示。
从上图可以看出,照片文件的命名还是以当前时间为名字命名的。我们将所有的照片都保
存在 SD 卡/U 盘的 PHOTO 文件夹。如果你没有插入 SD 卡/U 盘,拍照时会提示“创建文件失
败,请检查!”的提示信息。
按 KEY1 按键,可以实现 1:1 显示(显示区域小,但是图像无压缩,不变形),或者全尺寸
显示(显示整个摄像头拍照区域,但是图像有压缩,会变形)。另外,如果你觉得照片模糊,可
以手动调节摄像头模块的镜头,进行调焦,以达到最佳效果。
最后,看看本程序拍到的 JPG 照片样张,如图 64.2.11.6 所示:


图 64.2.11.6 JPG 照片样图(UXGA)
64.2.12 录音机
ALIENTEK 探索者 STM32F4 开发板综合实验带了录音机功能,可以实现通过 MIC(咪头)
录音,并将录音文件保存在 SD 卡/U 盘。录音文件为 WAV 文件,格式为:立体声(但是左声
道数据=右声道数据)、16 位、8Khz~48Khz 采样率可设置。
双击主界面的录音机图标,进入录音机主界面,如图 64.2.12.1 左侧图片所示,该界面显示
了当前录音时间以及信号电平等,在该界面有两个按钮:左边的按钮用于开始/暂停录音,右边
的按钮用于停止录音,并保存当前录音文件。
录音机功能可以设置采样率和 MIC(咪头,这里称之为麦克风)增益,通过点击左下角的
选项按钮,弹出录音设置对话框,可以设置采样率和 MIC 增益,如图 64.2.12.1 右侧图片所示。
图 64.2.12.1 录音机主界面和麦克风增益设置
采样率设置,可以设置录音时的采样率,支持:8Khz、16Khz、32Khz、44.1Khz 和 48Khz
等几种采样率。默认是 16Khz。注意:采样率必须在没有开始录音之前进行设置才行,否则会
提示:请先停止录音。
MIC 增益设置,支持从-12dB~32.25dB 的设置范围,以 0.75dB 步进。默认是 22.5dB 增益,
大家可以根据自己需要设置合适的 MIC 增益,以达到最好效果。注意:如果外接了喇叭或者音
箱,当增益太大的时候,会产生啸叫,这个时候,请将增益设置小一点。
采样率设置和 MIC 增益设置,如图 64.2.12.2 所示:




图 64.2.12.2 采样率设置和麦克风增益设置


图 64.2.12.3 录音进行中和提示保存
在图 64.2.12.3 中,左侧的图片为正在录音的界面,此时我们可以按暂停/停止,按停止则
自动保存当前录音文件,录音文件同样是以时间命名(见图中上方白字),所有录音文件都是被
保存在 SD 卡/U 盘根目录的 RECORDER 文件夹里面的。在录音的时候,按下 TPAD,会提示
是否保存,如上图右侧图片所示,我们可以根据需要选择。
64.2.13 USB 连接
双击主界面的 USB 连接图标,如果开发板的 USB 端口没有连接电脑,则显示无连接,如
图 64.2.13.1 所示:


图 64.2.13.1 USB 无连接和 USB 读数据
上图中,左侧的图片显示开发板没有和电脑连接上,此时,我们找一根 USB 线,连接开发
板的 USB 端口和电脑的 USB,注意:此时 USB_HOST 不能插任何 USB 设备!然后,可以看
到开发板提示 USB 已连接,并显示 USB 正在读数据,同时我们在电脑上面,可以看到右下角
提示发现新硬件,并自动安装驱动(如果是第一次连接的话),如图 64.2.13.2 所示:


图 64.2.13.2 电脑发现新硬件
此时,我们打开我的电脑,即可找到可移动磁盘,如果有 SD 卡插入,那么会显示 2 个磁
盘:ALIENTEK 磁盘和 SD 卡磁盘。如果没有 SD 卡插入,则只显示 ALIENTEK 磁盘。这里的
ALIENTEK 磁盘即开发板板载的 SPI FLASH Disk。
这样,我们就实现了开发板和电脑的 USB 连接,可以直接从电脑拷贝文件到开发板的 SD
卡或者 FLASH Disk(即 W25Q128)。
这里再次提醒大家,如非必要,不要往 FLASH Disk 写入数据!否则容易写坏 SPI FLASH。
64.2.14 网络通信
探索者 STM32F4 开发板板载了一个 10M/100M 自适应以太网接口,可以实现网络通信。
本系统的网络通信,就是给大家演示开发板的网络通信功能。
本系统自带的网络通信具有如下特点:
1, 使用 LWIP 作为 TCP/IP 协议栈。
2, 支持 DHCP,当 DHCP 失败时,使用静态 IP(静态 IP 地址为:192.168.1.30)。
3, 自适应网线(支持交叉和直连网线)。
4, 支持 Web Server 测试,可通过浏览器,控制开发板的 DS1 和蜂鸣器等。
5, 支持 TCP Client、TCP Server 和 UDP 等测试。
特别注意:本测试,必须在开发板网口接入网线,并连接正常后,才可以进行测试。也就
是必须用网线连接开发板和电脑/路由器,才可以进行测试,否则,系统会提示网卡初始化失败,
从而退出测试!!!
双击主界面的网络通信图标,开始网卡初始化,在网卡初始化成功后,开始 DHCP 获取 IP
地址,在 DHCP 成功后,进入网络通信主界面,如图 64.2.14.1 所示:


图 64.2.14.1 初始化网卡和网络通信主界面
上图中,左侧图片显示正在初始化网卡,此时,我们必须在开发板的网口插入网线,并连
接电脑或者路由器,才可以初始化网卡成功。初始化网卡成功后,则开始 DHCP 获取 IP 地址:
1,开发板连接到路由器,此种方式,DHCP 一般可以成功获取 IP 地址。
2,如果是直接连接电脑,那么 DHCP 肯定失败,最终会使用静态 IP 地址:192.168.1.30,
此时需要设置电脑 IP 地址为 192.168.1.XXX,其中 XXX 可以由用户自己随意设置(但是不能
是 1 和 30)。
这里我们以连接路由器为例,DHCP 获取成功后,进入网络通信主界面,如图 64.2.14.1 右
侧图片所示,该界面显示了开发板网卡的详细设置和参数,包括:本机 MAC 地址、本机 IP 地
址(DHCP 获取)、网关和网速等。
能进入网络通信主界面,说明开发板与路由器的连接已经正常了,可以在电脑端 ping 屏幕
显示的 IP 地址,即可查看网络是否连接正常,如图 64.2.14.2 所示:


图 64.2.14.2 ping 192.168.1.119 成功
从上图可以看出,ping 开发板 IP 地址是成功的,说明网络连接正常了。然后在浏览器输入
开发板的 IP 地址,即可登录 Web Server 的主界面,如图 64.2.14.3 所示:


图 64.2.14.3 Web Server 主界面
在上图所示的Web Server主界面,可以实现对开发板LED和蜂鸣器的控制,以及读取ADC1
通道 5 的值、温度传感器值、RTC 时间和日期等。特别注意:ADC1_CH5 所在通道刚好是 TPAD
的输入通道,所以,本测试读取 ADC1_CH5 的电压值,是不正确的,因为 IO 被 TPAD 占用
了!!!如需要正确读取,请参考网络通信实验(第六十章)。
点击图 64.2.14.1 右侧图片所示的开始测试,即可进入:TCP Server、TCP Client 和 UDP 的
测试界面,如图 64.2.14.4 所示:


图 64.2.14.4 TCP&UDP 测试界面和协议选择
从图 64.2.14.4 左侧图片可以看出:最顶部,显示了 TCP Server 的本机 IP 地址和端口号,
其中 IP 地址是白色,表示不可以设置;端口号是绿色,表示可以设置,设办法:触摸点击该区
域,看到光标闪烁后,即可输入数字进行设置。随后,显示 TX,RX,和协议等三个信息,分
别代表发送接收的数据量,和当前所使用的协议类型。
然后就是一个接收区和发送区,分别用于显示接收到的数据,和发送的数据。这个同电脑
端的网络调试助手一样。右边的协议选择按钮,可以选择不同协议(如图 64.2.14.4 右侧图片所
示),该选择按钮只有在连接断开的时候,才有效。连接按钮,用于启动连接(TCP Server/TCP
Client 和 UDP 等),连接结果会有对话框提示(成功或者失败)。清除接收按钮,则可以清除接
收区的所有数据,同时清除 RX 和 TX 计数器。发送按钮,则用于发送数据,没按一次,发送
区的数据就发送一次。
进入 TCP&UDP 测试后,协议默认选择的是 TCP Server,可以通过协议选择按钮,选择不
同协议(TCP Server、TCP Client 和 UDP),如上图右侧图片所示。
我们使用默认的 TCP Server 端口号(8088),然后点击链接,提示:连接成功后,即可开
启开发板的 TCP Server 服务,然后在电脑端,打开网络调试助手,设置正确的网络参数后(
不懂设置方法,请参考第六十章 网络通信实验对应测试部分,下同!!),即可连接上开发板的
TCP Server,并互相通信,如图 64.2.14.5 所示:


图 64.2.14.5 TCP Server 测试和 TCP Client 参数设置
上图中,左侧图片为 TCP Server 测试界面,可以看到,我们收到来自电脑的数据,接收数
据时,首先会在接收区提示收到的数据来自何处(即电脑端的 IP 地址,本例可以看出,电脑 IP
地址为:192.168.1.114),随后才是电脑端发送过来的数据。同时,我们也发送了一些数据给电
脑(电脑端网络调试助手可以看到,这里就不截图出来了)。此时,协议选择按钮变为了灰色,
处于无效状态。只有在断开连接后,才可以选择新的协议。
TCP Client 的测试如图 64.2.14.5 中右侧图片所示,我们选择了 TCP Client 协议之后,顶部
IP 变为了目标 IP,也就是 TCP Client 要连接的 IP 地址,我们可以根据自己需要设置对应的 IP
地址和端口号。这里,我们设置为:192.168.1.114,端口为:8087。注意:这里的 IP 和端口号,
要根据自己电脑的实际情况修改。随后需要在电脑端开启网络调试助手,并设置正确的网络参
数(主要是端口号和 IP 地址),然后开启 TCP Server 服务。
TCP Client 测试必须等电脑端 TCP Server 服务开启后,我们才可以在开发板点击连接,并
连接成功,否则肯定是连接失败的。连接成功后,TCP Client 的测试如图 64.2.14.6 所示:


图 64.2.14.6 TCP Client 测试和 UDP 测试
上图中,左侧为 TCP Client 测试界面,右侧为 UDP 测试界面,这两个测试界面和 TCP Server
差不多,请参考前面的介绍。
UDP 的测试,同 TCP Client 基本一样,也是线设置目标 IP 和端口号,然后按连接,进行
测试。UDP 测试的时候,一般需要开发板先发送一次数据给电脑端的网络调试助手,随后才可
以实现数据互发。UDP 测试界面如图 64.2.14.6 右侧图片所示。 注意:UDP 不是基于可靠连接
的通信,所以程序提示连接成功的时候,仅仅是个提示作用,并不是说就一定连接上了目标 IP
和端口号,因此,不一定能成功发送数据给对方,这个在使用的时候,要注意。
网络通信就为大家介绍到这里。
64.2.15 无线传书
该功能用来实现两个开发板之间的无线数据传输,在开发板 A 输入的内容,会在开发板 B
上完整的“复制”一份,该功能需要 2 个探索者 STM32F4 开发板(也可以一个探索板与战舰
板或 Mini 板搭配用,不过都要刷综合实验!!)和 2 个 NRF24L01 无线模块。
双击主界面的无线传书图标(假定开发板已插上 NRF24L01 无线模块),会先弹出模式选
择对话框,如图 64.2.15.1 所示:


图 64.2.15.1 模式选择和发送模式界面
从左侧的图片可以看出,模式设置,我们可以设置为发送模式或接收模式。右侧的图片则
是选择发送模式后进入的界面。我们在另外一块开发板(开发板 B)设置模式为接收模式,然
后在本开发板(开发板 A)手写输入一些内容,就可以看到在另外一个开发板也出现了同样的
内容,如图 64.2.15.2 所示:


图 64.2.15.2 在开发板 A 输入的内容完整的显示在开发板 B 上
从上图可以看出,在开发板 A 上输入的内容,被完整的复制到开发板 B 上了。这就是无线
传书功能。
64.2.16 计算器
探索者 STM32F4 开发板实现了一个简单的科学计算器,可以计算加减乘除、开方、平方、
M^N 次方、正弦、余弦、正切、对数、倒数、格式转换等一些常见的计算器功能,精度为 12
位,支持科学计数法表示。双击主界面的计算器图标,进入计算器主界面,如图 64.2.16.1 所示:


图 64.2.16.1 计算器主界面和加法计算
上图中,左侧的图片为科学计算器的主界面,和我们手机用的计算器基本一样,使用上非
常简单,我们就不详细介绍了。右侧的图片为加法计算,支持累加功能。


图 64.2.16.2 计算器主界面和加法计算
上图为乘法计算和倒数计算,可以看到,结果是以科学计数法表示的,最大支持 200 位指
数表示,超过范围直接显示错误(E)。
该计算器还支持格式转换(按 FMT 键),可以将十进制数据(最大为 65535,超过部分将
被丢弃)转换为 16 进制/二进制数据表示,如图 64.2.16.3 所示:


图 64.2.16.3 格式转换
上图显示我们将十进制的 65535 转换为 16 进制/二进制后的表示。计算器的其他功能,我
们就再列举了,感兴趣的朋友可以慢慢摸索,当然也可以在这个基础上进行改进。通过按 TPAD
可以返回主界面。
64.2.17 拨号
本综合实验支持拨打和接听电话,不过需要 ALIENTEK ATK-SIM900A GSM 模块的支持,
所以本功能的测试,请先确保有 GSM 模块,并连接成功(详见 64.2 节开头部分)。
双击主界面的拨号图标,进入拨号界面,如图 64.2.17.1 所示:


图 64.2.17.1 拨号主界面和拨号
上图中左侧图片就是拨号主界面,这个和手机拨号是一样的。右侧是我们输入的拨号号码,
点击拨号图标,即可进行拨号。如图 64.2.17.2 所示。


图 64.2.17.2 拨号中和通话中


图 64.2.17.3 来电和接听来电
图 64.2.17.2 为拨号和拨通后的通话界面。图 64.2.17.3 为来电和接听来电后的通话界面,此
时蜂鸣器会发出“滴、滴”的提示声,提示有电话呼入。其他的操作和我们智能手机基本一模
一样,就无需多说了。
注意,在通话状态,如果按 TPAD,则会挂断电话,结束通话。
64.2.18 应用中心
双击主界面的应用中心图标,进入应用中心界面,如图 64.2.18.1 所示:


图 64.2.18.1 应用中心和红外遥控测试
左侧图片是我们刚进入应用中心看到的界面,在该界面下总共有 16 个图标,我们仅实现了
前两个:红外遥控和陀螺仪功能。其他都没有实现,大家可以自由发挥,添加属于自己的东西。
双击第一个图标,会弹出一个红外遥控的小窗口,用于接收红外信号,此时,我们将红外
遥控对准探索者 STM32F4 开发板的红外接收头,并按钮,则可以在红外遥控窗体里面显示键
值、按键次数、符号等信息。如图 64.2.18.1 右侧图片所示。
按 TPAD 可以退出红外遥控功能,返回应用中心主界面,然后按第二个图标,即可进入陀
螺仪测试界面,如图 64.2.18.2 所示:


图 64.2.18.2 初始化 DMP 和陀螺仪测试
这里的陀螺仪,起始就是指开发板板载的 MPU6050 传感器,这里我们应用 MPU6050 独有
的 DMP 功能,来实现姿态解算,得出欧拉角:俯仰角、横滚角和航向角。
上图中,左侧图片显示了正在初始化 MPU6050 的 DMP,在初始化成功后,显示姿态解算
后的俯仰角、横滚角和航向角。此时,我们调整开发板的位置,就可以得到不同的俯仰角、横
滚角和航向角。
按 TPAD 返回应用中心主界面,再按 TPAD 返回系统主界面。
64.2.19 短信
双击主界面的短信图标,开始读取 GSM 模块 SIM 卡中的短信,如图 64.2.19.1 所示:


图 64.2.19.1 短信读取中和读取到的短信
上图中,左侧显示了短信读取的进程,当所有短信读取完成后,显示读取到的短信,如图
右侧图片所示。可以看出,SIM 卡中总共有 4 条短信,其中:前面有黑色实心圆标志的代表是
未读的短信,前面有空心圆的表示读取过了的短信。
当短信内容大于一行宽度后,会采用走字的方式显示,起到预览的作用。在该界面,按 TPAD
可以返回系统主界面。
点击左下角的选型按钮,可以选择对短信的操作,如图 64.2.19.2 所示:


图 64.2.19.2 短信操作和新建信息
上图中,左侧图片显示的短信操作总共有三个操作:新建信息、阅读信息和删除信息。其
中阅读信息也可以在读取到的短信界面,直接双击短信条目进行阅读。
右侧图片显示了新建信息的界面,新建信息是,收件人是可以编辑的,我们先输入收件人,
比如 1008611,然后就可以进行对话了。如图 64.2.19.3 所示:


图 64.2.19.3 短信对话和重新回到读取到的短信界面
图中左侧的短信对话界面,有点类似现在手机的短信方式,收发双方的内容都显示在一个
区域,可以通过滚动条拖动查看。图中是我们发数字给 1008611,以及 1008611 对我们做出的
应答。每当一条短信发送成功后,蜂鸣器会有“滴”的一声短叫,提示发送成功。如果接受到
新的短信,蜂鸣器会有“滴、滴”的两声短叫,然后新收到的短信(收件人发过来的)会实时
添加到我们的对话中来。
图中,右侧图片是我们同 1008611 进行短信对话之后,按 TPAD,返回到读取到的短信界
面。从图中可以看出,短信条数比图 64.2.19.1 中多了很多,说明收到了很多短信,且都已经自
动添加到读取到的短信中来了。
短信的其他操作,就不详细介绍了,和手机基本一模一样,大家自己摸索下就可以了。
至此,整个探索者 STM32F4 开发板的综合测试实验就介绍完了。此代码在战舰 STM32 开
发板的基础上进行修改而来,相比战舰板的综合实验,功能更多,更强悍。其中,参考了不少
网友的代码,对这些网友表示衷心的感谢,同时我也希望我们的这个代码,可以让大家有所受
益,能开发出更强更好的产品。
综合实验整个代码编译后大小为 680K 左右(-O2 优化后),代码量是非常的大,希望大家
慢慢理解,各个攻破,最后祝大家身体健康、学习进步!
正点原子
2014-10-23
于广州

回帖(3)

春天一满屋

2020-6-29 21:45:46
正点原子STM32F407探索者开发板资料连载第六十四章 综合实验
举报

leslie_aqiang

2021-1-7 20:23:46
很棒棒哦,值得学习
举报

peter

2021-7-31 17:04:49
很强大,学习学习,交流一下,赞。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分