01大侠-ucgui人机界面实验_第1页
01大侠-ucgui人机界面实验_第2页
01大侠-ucgui人机界面实验_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、人机界面实验(基于 uC/GUI + uC/OS-II)图 1 本实验在 ANTEK 战舰开发板上的移植大侠 _ 2013/1/18创建者:写面本实验的目的在于学习人机交互界面方面的知识,所以对于功能性问题并不深究,比如支持长文件名、FLAC 格式的音乐等,其中的一些功能只是简单的实现,并没有花大功夫去改善。本设计的是界面设计。本设计的不同之处在于模仿了 Metro UI 风格的界面(所以这种界面并非作啊,是微软)。众所周知,Metro UI 的一大特点就是极为流畅,从表者面上来看,这是由于 Metro 风格的界面大多以单块(磁贴)组成,而并非Android 和 IOS 的那种以全彩具有透明效

2、果的图标作为界面元素的。用过单片机驱动过彩屏的人都知道,显示一张比填充一块颜色要慢得多,这是由于彩色数据量大,必须保存在外部器里,不能通过计算直接绘制出来。相反,单色的界面元素可以通过计算直接绘制出来,无需外部器,所以速度会很快。当然这并不是解释为什么 MetroUI 比 Android 速度快(实际的原因这可能只是极小的一方面),但是对于学习的单片机界面就很不同了,上述原因可以说就是为什么本设计的流畅度很高的原因。单块组成的界面(甚至位图也采用单色或者 2 位色的),这样整个界面不依赖制(uC/GUI 的作者实现的),大大提高了速度!素材,界面完全通过计算绘图 2 Windows Phone

3、 8 UI 和本设计的 UI有了流畅度自然就会有滑动操作,没错!本设计的另一特色就是实现了滑动触摸操作,滑动的目的在于增加一个界面的元素容纳量,这样就可以设计出较为复杂的菜单了。本实验建立在 uC/GUI 和 uC/OS-II 之上(当然如果你不懂uC/GUI 或者 uC/OS-II 也无关紧要,可以在此刻选择学下)。选择 OS 是出于功能方面的需求(也不能太简单),还有就是顺便学下 uC/OS。GUI 是本设计的重点,开源的 GUI 中笔者选择了 uC/GUI,主要是它提供了类似 winXP 的界面风格,窗体、按钮等各种控件都类似 windows 下的界面概念。所以,界面上的实现用uC/GU

4、I 决定了它不能完全模仿出 Metro UI,所以只能说是面长的像 Metro 而已 。版的,只是主界图形界面uC/GUI 可能很多人听,但真正使用过的可能并不算多。在此只本设计的功能介绍以及移植到你的设备上的方法。若你对其实现或者uC/GUI 感,可以参考源码。好了,闲话不多说,进入正题。1. 整体说明程序启动后将首先检测MCU自身的flash区域查看是否是首次启动,若是首次启动,将执行触摸屏校准任务,否则不执行。屏幕校准参数存在flash最后2KB的区域中。音乐部分将从根目录MUSIC文件夹中获取列表,浏览部分将从根目录PHOTOS文件夹获取列表,但目前只支持bmp格式的16位图片,分辨率

5、也只支持240*320以下。文本浏览将从根目录TEXT文件夹下获取文本列表。所以想体验某个功能请将相应的文件放入正确的文件夹下即可。上下滑动界面即可操作界面的滑动,整个界面的操作不需要按键。功能描述音乐:可以MP3格式的音乐,其他格式的可能不支持。比特率请自测,目前还没有发现不能播的。音乐界面可以显示频谱、静态图、和歌词,但是歌词部分代码没有写,目前尚不支持。模式为循环,不支持快进快退,支持上功能,另外可以在“器设置”菜单下调一曲,下一曲功能,列表选择节音量。图 3 音乐界面和器设置2.2设备起始设计希望可以支持打开多个设备,并且可以互传文件,但是,目前只支持SD卡的文件浏览,其他的代码没有写

6、。2.3 文本文本功能可以做一款漂亮的阅读器。单本设计只是简单的实现,仅可以简单地打开文本文档,只能看到前1KB的内容,其他的功能没有加入。图 4设备和文本浏览2.4 设置支持时间的设置,界面配色设置,在此项设置中,你可以灵活配置整个系统按钮颜色和背景色。还可以执行触摸屏校准和查看系统信息。图 5 时间设置和系统配色设置图 6系统信息查看和触摸屏校准功能2.5简单的查看位图图像图 7查看FFT暂不支持,设计时希望能够对AD采样波形进行FFT变换,显示出结果波形。串口应用支持USART1波特率设置,接收功能尚未添加,支持发送SD卡中的文件,但只支持根目录下的文件发送,不支持目录下的文件发送。2.

7、8示波器提供了一个demo程序演示。设计时希望提供简单的示波器功能。图 8 串口应用和示波器如何将此程序移植到你的设备上首先,此程序的硬件要求:MCU:RAM64KB,ROM 512KB;LCD:240X320分辨率,提供触摸屏接口。移植:3.2在此假设程序能够在你的设备上运行,只需要修改底层接口。若是不同厂家(不是意法公司的)的MCU,移植时可能会复杂点。3.2.1修改LCD驱动程序中LCD_Driver.C文件就是LCD的的驱动程序。根据你的LCD引脚连接方式配置相应的驱动。如果你的LCD是正点原子的,那么恭喜你,目前移植到战舰开发板上的程序可以兼容大部分的LCD。你可能只需根据连接的引脚

8、修改FSMC部分的代码即可。LCD驱动需要能够提供LCD初始化函数,绘制点函数,点函数以及绘制横竖线函数即可。然后,不要改动工程中的函数名,将你的功能相同的函数代码替换掉原始代码即可。程序运行时GUI会自动调用这些函数。事实上你需要替换的可能只有一个函数:void LCD_SetCursor(u16 X, u16 Y)这个函数的功能是设置LCD显示的坐标。其实,若你对uC/GUI移植熟悉的话,上述工作将会变得简单。3.2.2修改触摸屏驱动LCD 移植完成之后,就能够显示主界面了,但是不支持触摸,你需要修改你的触摸屏驱动程序。修改的内容主要在 GUI_X 下的 GUI_X_Touch.c 文件中

9、的两个函数:GUI_TOUCH_X_MeasureX(void)和GUI_TOUCH_X_MeasureY(void) 这两个函数的功能分别是获取触摸点的坐标,你只需将相应的函数或代码替换掉原始代码即可。X,Y图 9 触控移植修改内容示意最后程序还提供了触摸屏校准功能,屏幕校准部分的程序修改了uC/GUI的源码,此项功能并非 uC/GUI 本身所具备!移植时请注意保证工程的完整性!程序默认使用校准功能,但你可以选择是否需要校准功能。如果你不需要校准(校准的结果可能相对不太准确,这取决于你的触笔精确与否),那么你需要手动设置你的触摸屏参数:在 uC/GUI_Config 目录下的 GUITouc

10、hConf.h 文件中填上你的触摸屏在四个屏幕边缘输出的数值即可。这需要你自己测得。图 10 触屏参数设置(代替校准)设置完参数之后,需要在 APP.C 文件中取消触摸屏校准任务的创建。图 11 需要注释掉的内容完成上面的操作,你将不使用触摸屏校准功能,即使你在设置选项中使用了触摸屏校准功能,也只是当前有效,重启后校准操作将无效。另外,需明的是,如果在触屏校准时,你的输入是不合法的(触摸位置和光标相差甚远),那么保存的屏幕参数就是错误的,可能导致所有触摸操作变得不可用了,这时,只有全片擦除重新设置了。所以,不要乱校准屏幕。以上两点移植完成,你的设备应该能够体验到本设计界面的操作感受。然后根据你的需要,修改SD卡等外设即可加入相应的功能。本实验的源码已经在开源发布,可以到开源,程序已经移植到正点原子的 ANTEK 战舰开发板,有战舰板子的可以体验一下。另外,鉴于正点原子的战舰开发板设备众多,你可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论