打印
[应用相关]

STM32垂直应用挑战第三周+TouchGFX中 Callback模板实现原理

[复制链接]
3601|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lark100|  楼主 | 2020-12-5 23:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
TouchGFX中Callback模板实现原理
https://www.stmcu.com.cn/Designresource/design_resource_detail?file_name=TouchGFX%E4%B8%ADCallback%E6%A8%A1%E6%9D%BF%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86&lang=EN&ver=0.2


TouchGFX为MCU带来了炫彩丰富的GUI界面,使得基于STM32芯片的人机界面开发非常方便而友好,比如可以在TouchGFX Designer中创建一个按键,在interaction中给按键添加响应;或者创建多个界面,在界面间进行切换;这些功能由designer帮我们自动生成代码实现了。
TouchGFX是用C++编写的,借助C++的模板特性,TouchGFX定义了一组Callback模板,基于此模板来实现上述响应的功能。


在TouchGFX中,Callback模板的描述放在Callback.hpp文件中,在此定义了两组模板:GenericCallback与 Callback模板。
1、GenericCallback模板组
GenericCallback为Callback模板的模板基类。在GenericCallback模板中,定义了两个接口函数:isValid与execute;其中isValid是来检测Callback是否被初始化过,而execute函数用于调用实际要执行的函数。GenericCallback模板组总共定义了4个模板,模板之间的差别在于execute函数的参数个数不同,4个模板分别对应execute函数带有0个参数,1个参数,2个参数与3个参数。本文中仅列出execute带一个参数的情况。


2、Callback模板组
Callback模板由GenericCallback派生而来。Callback模板组也有4个模板,分别对应于包含不同参数个数execute函数的GenericCallback模板。



本文介绍了TouchGFX中Callback模板的基本原理,并结合两个例子,简要说明了Callback模板在框架中的使用方法。只要注意Callback的类型、初始化过程,以及最终execute函数执行的函数主体,就能理解Callback模板了,这对深入理解TouchGFX也有一定帮助。


CallbackTemplate_in_TouchGFX_v0.2.pdf (250.53 KB)




使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:有阳光就灿烂,有知识就高兴!!

114

主题

4418

帖子

10

粉丝