6.TouchGFX界面应用之定时器机制

2020-06-28来源: eefocus关键字:TouchGFX  界面应用  定时器机制

在TouchGFX有一个类似于滴答定时器的函数,handleTickEvent()。

这一节我们使用handleTickEvent函数让图形动起来。

在形状中找圆,设置圆画板大小为500X500,起点坐标为260,50,圆心在画板坐标的250,250,设置圆弧的开始角度和终止进度,设置圆弧的半径和圆弧线的宽度(0表示全部填充),这样这个圆弧就创建好了,

我们再在圆弧的外面画一个完整的圆

生成代码,在Screen2View.hpp的Screen2View中加入两个变量和handleTickEvent函数,声明这个函数后,在程序执行时,会自动定时调用或者函数。

在Screen2View.cpp中定义这个函数,设置圆弧的开始和终止角度,每次加6度,一圈是360度正好加60次结束,连续起来就感觉在转圈圈,在Screen2View构造函数里面赋初值。

circle1.setArc为设置圆弧的角度,函数原型如下,

运行模拟器,查看效果。然后编译下载到开发板,

我们还可以添加文字来显示他转了多少圈,先添加一个文本框,取消自动设置大小,文本款尽量拉大一点防止数据显示不完整,设置字体居中,显示设置通配符,设置buff长度10个字节。

添加显示代码,显示minute的值,没有添加数据溢出处理

Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZE,"%d", minute);

textArea1.invalidate();

运行测试如下,发现与预期不符。

那是因为我们没有添加通配符范围,在修改字体的地方添加通配符范围。

重新生成代码,编译烧录。

这样是不是感觉有点单调,那好可以再加一个圆弧,设置成红色初始角度

void Screen2View::handleTickEvent()

{

count++;

if(count >= 60){

count = 0;

minute++;

Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZE,"%d", minute);

textArea1.invalidate();

}

circle1.invalidate();

circle1.setArc(count * 6, count * 6 + 30);

circle1.invalidate();

circle_Red.invalidate();

circle_Red.setArc(count * 6 + 180, count * 6 + 30 + 180);

circle_Red.invalidate();

}

编译下载就可以看到两个圆弧对立转


关键字:TouchGFX  界面应用  定时器机制 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501347.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:7.TouchGFX界面应用多屏幕传参
下一篇:5.TouchGFX界面应用之多屏幕

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

2.TouchGFX界面应用之Hello world
打开TouchGFX 4.10.0 Designer先选择开发板或者屏幕,移动鼠标到Simulator,会出现一个 CHANGE 按钮:打开如下图,如果你是ST官方板,那么你可以直接选择对应的开发板,如果你不是那选择对应分辨率的屏幕,我选择的是1024X600的屏幕。你可以选择一些UI,这些UI都带着一些有意思的图片和一些有意思的小东西,但是选择一些UI就意味着可能内存不够,我这里不选择,使用白板。还有管脚的路径,选择路径不能有中文和空格以及数字开头,选择好之后开始,第一次使用可能需要下载数据包。下图是主界面其中1:  主显示界面2:提供的组件(你也可以自定义组件)3:组件参数设置4:输出代码或者仿真我们先做一个做一个
发表于 2020-06-28
2.TouchGFX<font color='red'>界面</font><font color='red'>应用</font>之Hello world
3.TouchGFX界面应用之按钮与响应
上一节我们TouchGFX 添加了背景和文字显示,这次我们添加按键和按键动作,实现一个什么功能呢,那就再学习一个组件进度条,实现两个按键控制进度条。找到按钮,我使用两个带文字的按钮和任意找一个进度条修改按钮中间的值,我设置为80和20,另外为了区分两个按钮需要对两个按键取一个特别的名字,取名字要按照C语言函数命名规则,那就默认的名字后面加一个20把,另一个一样也是默认名字后面加一个80,那那个进度条叫什么呢,反正就一个就默认把,然后在右边interactions添加一个interaction(互动?)设置当20按钮被点击时候设置进度条值为20,同样在加一个互动设置当80按钮被点击时候设置进度条值为80设置好我们运行一下,鼠标点两个按
发表于 2020-06-28
3.TouchGFX<font color='red'>界面</font><font color='red'>应用</font>之按钮与响应
4.TouchGFX界面应用之STM32显示移植
TouchGFX前面几个教程都是在模拟器上跑都没有下到开发板子上过那就不好玩了啊,那我接下来将如何移植到stm32上面运行,我这里以非官方板为例。我们使用的是STM32CubeMX软件生成我的版本是5.2,使用STM32F746IGT6为核心的开发板为Open746I-C:http://www.waveshare.net/shop/Open746I-C.htm,使用7寸电容触摸屏:http://www.waveshare.net/shop/7inch-Capacitive-Touch-LCD-F.htm 分辨率为1024×600。先打开或者重新创建一个STM32CubeMX驱动LCD的工程。开启一个TIM1为TouchGFX框架作为
发表于 2020-06-28
4.TouchGFX<font color='red'>界面</font><font color='red'>应用</font>之STM32显示移植
5.TouchGFX界面应用之多屏幕
这一节我们在TouchGFX可以创建多个界面,在组件的上面新建一个界面,同样先铺好背景。放置一个用于切换屏幕的按钮取个名字,在添加显示的文字设置互动,改变屏幕,切换到屏幕2 ,添加切换动画为幻灯片,切换方向东(上北下南,左西右东),这个动画也可以不加,如果你的屏幕比较大,显示出来的效果不是很好,显示有卡顿。当然你也可以超频来提高运行速度来解决这个问题。在屏幕二任意放一点东西,再放置一个回到屏幕1 的按钮。这个是自带的功能所以不需要修改任何代码,启动模拟器,查看功能是否有问题,如果没问题,添加到Keil工程,注意:添加屏幕,图片,字体等等都需要添加或者修改keil工程文件,不然编译会报错。编译如果报错看错误是什么,如果提示函数未定义
发表于 2020-06-28
5.TouchGFX<font color='red'>界面</font><font color='red'>应用</font>之多屏幕
7.TouchGFX界面应用多屏幕传参
上一节使用TouchGFX的handleTickEvent机制做了的计数器,但是有一个缺陷,在切换屏幕后再切换回来计数器归零了,如果我想这个计数器在任意时刻都在计数,哪怕切换的屏幕还是在计数。首先需要知道为什么计数器会归零,原因是TouchGFX使用的是MVP框架,在MVP框架中所有数据仅能保存在称为 Model 的类对象中,Presenter是视图(View)与Model之间的纽带,View只能通过Presenter来读取数据。这个框架可以在VC工程中可以看出。MVP框架所有需要保存的数据必须再Model 的类对象,我们之前说明的数据都是再View类里面,所以在切换屏幕后所有的数据全部丢失了。前面说了数据都是再View类切换屏幕后
发表于 2020-06-28
7.TouchGFX<font color='red'>界面</font><font color='red'>应用</font>多屏幕传参
单片机制作简易定时器
系统图: 程序: #include<at89x51.h> unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90}; unsigned char count; unsigned char second,temp; bit alarmflag; void delay(unsigned int i) { unsigned char j;   while(i--)for(j=248;j>0;j--); } void main() {  TMOD=0x22;  
发表于 2016-09-20
单片<font color='red'>机制</font>作简易<font color='red'>定时器</font>
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved