ucGUI第三篇:2-D Graphic Libray(2D图形库)
说明:我的硬件平台STM32F103ZET6,开发软件是KEIL V4.12 ,OS系统和GUI的版本分别是uCOS-II V2.86,ucGUI V3.94。
首先我想说的是:用STM32来做GUI很不合适的,当然做一些简单的应用还是可以的,我用三个方法在TFT显示屏上绘制连续的正弦波
(1) 用底层的函数GUI_Line()来绘制,不是GUI的库函数,效果还算可以的,基本上是连续的,但是有点闪屏,当然如果不在GUI的条件下,直接调用这个函数,效果相当不错的。
(2) 既然有闪屏我们就结束申请一块存储区来绘制,这样就可以消除闪屏,但是带来的得问题是,正弦波的移动速度真的可以用蜗牛爬来形容的,而且可以看到屏幕从上向下刷新的过程,也就是通过这个函数来实现的GUI_MEMDEV_Draw();
(3) 也可以用库上自带的那个类似GUI_Line()的GUI_DrawLine来实现绘制正弦函数,但是效果还是很差劲,几乎可以看到显示打点和擦出的过程。
通过上面的三个例子以后,我就觉得ST公司搞个GUI的移植是不是多次一举啊,但是我做了图片的放大和缩小的例子以后,觉得这个的效果还算差强人意,应用在一些简单的图像界面还是没有什么问题的。下面我就用一个自己做的例子说明一下,说明之前先看看我给这个例子拍得照片,相信大家会喜欢的
下面我就把我上传的图片的程序说明一下,第一幅是建立的一个图标界面,分别连接到里面相应的应用中去,第二个图片就是通过第一个图标连接进去的,第三个图片就是通过第二个图标连接进去的。是不是有点意思了。
(一)先来说说第一个图标的设计
ahButton[0] = BUTTON_Create(25, 37, 64, 64, ID_AUDIO, BUTTON_CF_SHOW );第一个图标就是通过8个这样的函数创建的,这个函数的功能是创建一个按钮,按钮上的图片是通过这个函数BUTTON_SetBitmap(ahButton[0],BUTTON_BI_UNPRESSED,&bmaudio);函数实现的,创建了按钮,按钮上的图片也有了,现在需要的就是怎么向别函数连接关系,通过这个函数r = GUI_GetKey();读取相应的按钮值就可以实现了。得到按钮值后通过一个switch语句就可以实现跳到别的函数执行了。完整的程序在后面附上
(二)然后再来说第二个界面的设计
这个界面主要是截取了深圳的一部的地图,然后通过uC-GUI-BitmapConvert.exe这个软件将其转换成数据嵌入到程序里面,这个界面可以实现图片的上下左右的移动,效果还是蛮不错的,再有就是关于这个软件的应用在GUI的说明书上有详细的说明,这里就不多说了,
(三)这个界面没什么要多少的,这个界面是从GUI的demo里面截取出来的。
关于这一节的函数,大家多多的练习一下就可以的,没什么特别注意的,看看这些函数的实验效果,印象会非常深刻的。
用户383199 2011-10-11 17:38
wangxinfeng6666_749290079 2011-10-8 15:25
用户383199 2011-9-29 00:58