精华内容
下载资源
问答
  • TouchGFX使用教程(一)前言TouchGFX背景TouchGFX工程的结构后记前言大家好,本人最近在做项目开发,项目中使用TouchGFX工具进行开发界面,同时使用stm32系列的芯片操作系统使用的是FreeRTOS,之前没有接触过带有界面...

    TouchGFX使用教程(一)

    前言

    TouchGFX背景

    TouchGFX工程的结构

    后记

    前言

    大家好,本人最近在做项目开发,项目中使用TouchGFX工具进行开发界面,同时使用stm32系列的芯片操作系统使用的是FreeRTOS,之前没有接触过带有界面开发的stm32,也同样没有接触过TouchGFX界面开发工具,所以在开发过程中也遇见过一些坑,对于开发TouchGFX+stm32+stm32cubeMX有一些体会,给大家展示出来希望有一些作用吧。

    TouchGFX背景

    TouchGFX作为X-Cube-TouchGFX的一个X-Cube软件包提供。

    有了这些,您就可以为基于STM32的硬件完整地实现GUI应用程序。TouchGFX包括三个主要部分-两个工具和一个框架。

    1、TouchGFX Designer:TouchGFX中易于使用的GUI构建器,可让您创建TouchGFX应用程序的视觉外观。

    2、TouchGFX Generator:一个CubeMX插件,用户可以在其中为基于STM32的硬件配置并生成自定义的TouchGFX抽象层(AL)。

    3、TouchGFX引擎:驱动UI应用程序的TouchGFX C ++框架。处理屏幕更新,用户事件和计时。先进的TouchGFX技术针对STM32微控制器进行了优化,以最小的CPU负载和内存使用量为您提供最佳性能。

    在这里TouchGFX的安装和入门就不给大家介绍了,从网上任意地方都可以找到。

    TouchGFX工程的结构

    在上图中需要注意的是COLOR DEPTH 选项,该部分定义了色彩的位深,所以创建工程时需要根据需要修改该部分的值,个人建议最好时24 bit。其次,如果需要使用官方demo做演示,点击Blank UI框进行选择demo,但是注意的是不知道是网络原因还是服务器本身原因,demo下载不太正常,有时可以正常下载有时却不行,越是大的demo越容易出现问题。当然使用st的官方评测版可在simulator侧直接选择出来。

    创建好工程后点击Generate Code按钮可以生成相应的代码,生成的代码可以通过多种方式打开:keil、IAR、STM32CUBEIDE、VS,如果只是做界面逻辑开发的话可以选择VS的IDE,因为VS的IDE可以抽象出UI部分的逻辑,层次感更清晰解耦更彻底。如果需要测试一下界面显示及逻辑则可以用Simulator模式显示。

    在TouchGFX界面上点击browse Code按钮则弹出文件夹,有心的朋友可以看一下这些文件夹中放的是些什么,如果创建的是带有硬件平台的上一层的文件夹下还有写驱动及协议层的东西。

    选择simulator文件夹通过VS打开工程,则可以看见TouchGFX界面程序的结构。

    现在具体的说一下工程的结构,在工程中包括gui文件夹和generated文件夹,重点说下这两个文件夹下的内容。generated文件夹下放的都是通过TouchGFX生成的文件,如果用VS打开的话,其中的文件是不能更改的,但是用ST的IDE或者IAR之类的工具是可以更改的,本人不建议手动更改其中的内容,因为再次通过TouchGFX生成代码是其中手动更改的内容会被删掉。

    在说一下gui文件夹下的内容吧,在gui文件夹下放着的是每个界面相应产生的子文件夹,同时还包括model文件夹及common、containers、这三个文件夹,model文件夹的作用是TouchGFX特有的结构模式MVP其中的一环,其中的model文件可以通过后台更新前台的数据,也可以通过前台向后台刷新数据。具体后面会给大家做细致的讲解。

    common文件夹中放置的是通用的类文件,如果需要些自定义的算法处理则可以将其放入该文件内。

    containers文件夹上面的图片中没有,但是如果通过TouchGFX创建自定义控件时则会创建该文件。

    具体如何使用后续会给大家做细致的讲解。

    除去上述的文件夹还有由于界面创建产生的文件夹该种文件夹以_screen结尾,此种文件夹中包含两种文件,第一种是包含View的文件,该文件是用于界面的逻辑事件开发,在文件中包含着事件的处理函数。

    第二种是包含Presenter的文件,该文件也是MVP模式中的一类文件,在给大家讲述MVP章节是会给具体的介绍该文件的内容。

    后记

    由于是第一章,主要给大家介绍了TouchGFX的文件结构,方便大家梳理工程逻辑,同时,最重要的是在开发过程中慢慢的体会工程结构。我会把我参考的文章放在下方的链接上,有需要的可以参照。也希望大家有意见和建议的话,在下方留言,本着共同学习,共同发展的目的,之后会细节的给大家介绍一些个人的理解。

    [1]: http://www.waveshare.net/study/portal.php?mod=list&catid=63

    [2]: https://github.com/draupnergraphics/touchgfx-widgets

    [3]: http://www.waveshare.net/study/article-629-1.html

    展开全文
  • Touchgfx现在最新的版本是4.13,CubeMX是5.6,随着版本的迭代,CubeMX与Touchgfx集成度越来越高,用户入门成本也越来越低。Touchgfx可以在所有stm32芯片上运行,但是官方推荐的配置是带有图形专用加速器DMA2D的芯片...

    Touchgfx现在最新的版本是4.13,CubeMX是5.6,随着版本的迭代,CubeMX与Touchgfx集成度越来越高,用户入门成本也越来越低。Touchgfx可以在所有stm32芯片上运行,但是官方推荐的配置是带有图形专用加速器DMA2D的芯片,很多同学体验过官方炫酷的Demo,肯定激动不已,但是对于如何移植却不太明白。这节将介绍如何从零完整地移植Touchgfx
    本教程使用的硬件平台:芯视界stm32f429 3.5寸开发板,欢迎大家光临我的淘宝店铺:芯视界touchgfx

    硬件 参数
    CPU STM32F429ZIT6
    SDRAM IS42S16400J 64Mbit
    external Flash 32Mbit
    触控芯片 STMPE811QTR
    屏幕 3.5寸 480×320

    一、Cubemx图形配置
    1、选择stm32f429zit6芯片,在RCC中置时钟为外部晶振,在SYS中打开串口调试:
    在这里插入图片描述
    2、因为Freertos推荐使用通用定时器为时钟源,所以我们设置定时器7为时钟源:
    在这里插入图片描述
    3、配置SDRAM控制器,SDRAM的参数可以先不用填:
    在这里插入图片描述
    3、触控芯片STMPE811QTR用到了I2C3和外部中断,所以开启I2C3,频率默认100K:
    在这里插入图片描述
    开启外部中断,配置引脚PG2为下降沿中断:
    在这里插入图片描述
    在NVIC里打开外部中断:
    在这里插入图片描述

    4、液晶屏幕使用的芯片是ILI9488,这款芯片在使用前需要初始化寄存器参数,用到了SPI通讯协议,但是这块板子上的屏幕引脚没有引出命令/数据选择的引脚,而是通过控制片选CS引脚和数据引脚DI的电平来切换,所以我们采用IO口模拟SPI的方式,配置IO引脚如下:
    在这里插入图片描述
    LCD_BL用来控制屏幕背光
    LCD_CS屏幕片选信号,主要是初始化的时候会使用

    5、开启DMA2D,颜色模式选RGB565,其余参数默认不变:
    在这里插入图片描述
    另外,DMA2D的中断也要开启,Touchgfx内部用此中断协调缓存与LTDC的工作顺序,不开启图像会卡死:
    在这里插入图片描述
    6、开启LTDC,选择RGB666或RGB565都是可以的,显示设置参数按照ILI9488手册来,:
    在这里插入图片描述
    Layer参数设置,只使用一层:
    在这里插入图片描述
    Color Frame Buffer Start Address填0xd0000000,是SDRAM映射的起始地址,STM32F429的内存空间映射图可在数据手册上查到。
    LTDC的全局中断需要打开,Touchgfx用中断信号来判断每一帧刷新是否完成:
    在这里插入图片描述

    7、开启CRC,这是Freertos要求的:
    在这里插入图片描述
    8、开启freertos,两个版本都可以,这里我用的V1,并把堆栈调大一些,太小程序可能运行可能不正常:
    在这里插入图片描述
    9、点击Additional Software,开启Touchgfx:在这里插入图片描述在这里插入图片描述
    然后配置Touchgfx:
    在这里插入图片描述
    这里使用了双缓存,第一帧的地址设置为SDRAM的起始地址即可,第二帧的起始地址与第一帧之间的字节数大于一帧所需的内存就行。注意:如果动画频率高,只开启单缓冲画面可能会撕裂或者闪烁。
    10、配置时钟树,LTDC的时钟频率可以自己试试,只要屏幕能正常显示就行,这里我们选的16M:
    在这里插入图片描述
    11、填写工程名字,生成代码:
    在这里插入图片描述
    CubeMX配置部分到这里就结束了,接下来就是Touchgfx Designer和keil MDK的事了。
    二、
    1、在生成的工程文件夹的子文件夹Src里找到ApplicationTemplate.touchgfx.part用Touchgfx designer打开,选择空模板:
    在这里插入图片描述
    2、随便添加几个控件到屏幕上,这里我们添加了一个box填充成黄色作为背景,和一个Toggle Button,最后点击生成代码:
    在这里插入图片描述
    先生成代码是因为MDK编译的时候会用到生成的源代码,否则编译会报错。
    三、驱动移植
    1、在MDK-ARM文件夹中打开MDK工程文件:
    在这里插入图片描述
    可以看到所有配置的硬件都初始化完成了,但是需要添加3个东西:(1)SDRAM芯片初始化代码,以前的Cubemx版本会自动生成,但是现在的版本取消了这部分内容,所以要手动实现,具体可以参考STM32CbueMX之SDRAM。(2)ILI9488液晶屏初始化,ILI9488芯片是需要先初始化内部寄存器才能正常工作的,比如配置工作模式、颜色格式、前后肩等,初始化参数不对会出很多奇怪的问题。(3)触摸屏与TouchGFX的接口函数需要我们手动实现。
    SDRAM和液晶屏初始化代码都直接提供了,添加进项目并调用即可:
    在这里插入图片描述
    在这里插入图片描述
    2、在freertos的任务调用touchgfx处理函数:
    在这里插入图片描述
    3、触摸屏与Touchgfx的接口函数在STM32TouchController.cpp里面,一共有两个:init()和sampleTouch(int32_t& x, int32_t& y),init()会被自动调用进行初始化,与触摸屏相关的初始化代码都可以放在这里面;sampleTouc()默认以60Hz频率对触控进行采样,我们只需要喂给它坐标值就行了。每一款触摸芯片的初始化程序和获取坐标的程序都不同,需要根据实际情况编写代码,这里我用的是STMPE811QTR,驱动文件也是提供了的,触控也校正完了。两个接口函数实现如下:在这里插入图片描述
    4、编译下载到开发板:

    根据上面的步骤可以建立一个工程模板,不用每次都这么麻烦的从头配置所有硬件和修改代码,模板
    工程下载地址在我的铺子里面,欢迎有需求的同学下载。

    -------------------------------下面是我的小广告----------------------------------------------
    在这里插入图片描述
    淘宝小店:芯视界touchgfx

    展开全文
  • TouchGFX使用教程

    千次阅读 2020-06-17 11:21:50
    TouchGFX使用教程(一)前言TouchGFX背景TouchGFX工程的结构合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...

    前言

    大家好,本人最近在做项目开发,项目中使用TouchGFX工具进行开发界面,同时使用stm32系列的芯片操作系统使用的是FreeRTOS,之前没有接触过带有界面开发的stm32,也同样没有接触过TouchGFX界面开发工具,所以在开发过程中也遇见过一些坑,对于开发TouchGFX+stm32+stm32cubeMX有一些体会,给大家展示出来希望有一些作用吧。

    TouchGFX背景

    TouchGFX作为X-Cube-TouchGFX的一个X-Cube软件包提供。
    有了这些,您就可以为基于STM32的硬件完整地实现GUI应用程序。TouchGFX包括三个主要部分-两个工具和一个框架。

    1、TouchGFX Designer:TouchGFX中易于使用的GUI构建器,可让您创建TouchGFX应用程序的视觉外观。
    2、TouchGFX Generator:一个CubeMX插件,用户可以在其中为基于STM32的硬件配置并生成自定义的TouchGFX抽象层(AL)。
    3、TouchGFX引擎:驱动UI应用程序的TouchGFX C ++框架。处理屏幕更新,用户事件和计时。先进的TouchGFX技术针对STM32微控制器进行了优化,以最小的CPU负载和内存使用量为您提供最佳性能。
    在这里插入图片描述
    在这里TouchGFX的安装和入门就不给大家介绍了,从网上任意地方都可以找到。

    TouchGFX工程的结构

    在这里插入图片描述
    在上图中需要注意的是COLOR DEPTH 选项,该部分定义了色彩的位深,所以创建工程时需要根据需要修改该部分的值,个人建议最好时24 bit。其次,如果需要使用官方demo做演示,点击Blank UI框进行选择demo,但是注意的是不知道是网络原因还是服务器本身原因,demo下载不太正常,有时可以正常下载有时却不行,越是大的demo越容易出现问题。当然使用st的官方评测版可在simulator侧直接选择出来。
    在这里插入图片描述
    创建好工程后点击Generate Code按钮可以生成相应的代码,生成的代码可以通过多种方式打开:keil、IAR、STM32CUBEIDE、VS,如果只是做界面逻辑开发的话可以选择VS的IDE,因为VS的IDE可以抽象出UI部分的逻辑,层次感更清晰解耦更彻底。如果需要测试一下界面显示及逻辑则可以用Simulator模式显示。
    在这里插入图片描述
    在TouchGFX界面上点击browse Code按钮则弹出文件夹,有心的朋友可以看一下这些文件夹中放的是些什么,如果创建的是带有硬件平台的上一层的文件夹下还有写驱动及协议层的东西。
    选择simulator文件夹通过VS打开工程,则可以看见TouchGFX界面程序的结构。
    在这里插入图片描述
    现在具体的说一下工程的结构,在工程中包括gui文件夹和generated文件夹,重点说下这两个文件夹下的内容。generated文件夹下放的都是通过TouchGFX生成的文件,如果用VS打开的话,其中的文件是不能更改的,但是用ST的IDE或者IAR之类的工具是可以更改的,本人不建议手动更改其中的内容,因为再次通过TouchGFX生成代码是其中手动更改的内容会被删掉。
    在说一下gui文件夹下的内容吧,在gui文件夹下放着的是每个界面相应产生的子文件夹,同时还包括model文件夹及common、containers、这三个文件夹,model文件夹的作用是TouchGFX特有的结构模式MVP其中的一环,其中的model文件可以通过后台更新前台的数据,也可以通过前台向后台刷新数据。具体后面会给大家做细致的讲解。
    common文件夹中放置的是通用的类文件,如果需要些自定义的算法处理则可以将其放入该文件内。
    containers文件夹上面的图片中没有,但是如果通过TouchGFX创建自定义控件时则会创建该文件。
    具体如何使用后续会给大家做细致的讲解。
    除去上述的文件夹还有由于界面创建产生的文件夹该种文件夹以_screen结尾,此种文件夹中包含两种文件,第一种是包含View的文件,该文件是用于界面的逻辑事件开发,在文件中包含着事件的处理函数。
    第二种是包含Presenter的文件,该文件也是MVP模式中的一类文件,在给大家讲述MVP章节是会给具体的介绍该文件的内容。

    后记

    由于是第一章,主要给大家介绍了TouchGFX的文件结构,方便大家梳理工程逻辑,同时,最重要的是在开发过程中慢慢的体会工程结构。我会把我参考的文章放在下方的链接上,有需要的可以参照。也希望大家有意见和建议的话,在下方留言,本着共同学习,共同发展的目的,之后会细节的给大家介绍一些个人的理解。
    [1]: http://www.waveshare.net/study/portal.php?mod=list&catid=63
    [2]: https://github.com/draupnergraphics/touchgfx-widgets
    [3]: http://www.waveshare.net/study/article-629-1.html

    展开全文
  • LtdTouchGFX 快速入门IAR从开发工具 ( )入手软件评估包:TouchGFX 4.8.0 (除了评估包以外,自动安装TouchGFX 运行环境以及TouchGFX4.8.0Designer)。下载链接:链接:/s/1bUg8v8 密码:bume评估开发板:STM...

    北京麦克泰软件技术有限公司

    Beijing Microtec Research Software Technology Co. Ltd

    TouchGFX 快速入门

    IAR

    从开发工具 ( )入手

    软件评估包:TouchGFX 4.8.0 (除了评估包以外,自动安装TouchGFX 运行

    环境以及TouchGFX4.8.0Designer)。下载链接:

    链接:/s/1bUg8v8 密码:bume

    评估开发板:STM32F769I-DISCO。详细信息:

    /content/st_com/en/products/evaluation-tools/product-evaluatio

    n-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/32f769idisco

    very.html

    开发工具:IAREWARM 7.7。下载链接:

    链接:/s/1kV6xQy7 密码:qil4

    烧写工具:STM32 ST-LINKUtility

    链接:/s/1nvBd0RB 密码:lwea

    全部软件必须安装,其中IAREWARM 需要评估License,其余均为免费。

    1、打开IAR EWARM,打开菜单栏File -> Open–>Workspace…进入到下载的评

    估包目录:touchgfx\4.8.0\app\template,将文件夹EmptyApplication 复制并粘贴

    到同一目录下,并更改文件夹名称如:MyApplication

    网址: 邮箱:info@bmrtech.coom

    北京:010上海:021深圳:0755

    北京麦克泰软件技术有限公司

    Beijing Microtec Research Software Technology Co. Ltd

    2、进 入 路 径 : MyApplication\target\ST\STM32F769I-DISCO\IAR , 选 择

    application.eww,并打开。

    网址: 邮箱:info@bmrtech.coom

    北京:010上海:021深圳:0755

    北京麦克泰软件技术有限公司

    Beijing Microtec Research Software Technology Co. Ltd

    在IAREWARM 中的Workspace 中显示的“目录”组织结构如上图。由于本

    次不涉及移植相关议题,我们只关心应用的编写。那么,接下来主要的目录结构

    只关心Application。展开Application 文件夹如下:

    在main 文件下的main.cpp 中,不是我们本次编写应用的入口程序。这里只

    是创 建 了 TouchGFX Framework 所 涉 及 到 的硬 件 初 始 化 hw_init() 和

    网址: 邮箱:info@bmrtech.coom

    北京:010上海:021深圳:0755

    北京麦克泰软件技术有限公司

    Beijing Microtec Research Software Technology Co. Ltd

    touchgfx_init(),及任务。main 函数不是我们刻意需要关注的,但对于hw_init()

    需要关注,因为我们需要在其中配置显示屏尺寸。跳转到hw_init()的定义处 (位

    BoardConfiguration.cpp 351 dispWidth

    于 ,第 行),定义显示尺寸的两个局部变量:

    展开全文
  • 通过上一节的操作,只用过C语言的同学可能觉得有些囫囵吞枣、消化不良,这一节将介绍C++语言的类、继承、虚函数三个概念,并梳理一下TouchGFX Designer生成的代码的组织结构,方便系统把握Touchgfx的知识点。...
  • TouchGFX的stm32移植教程[复制链接]本帖最后由 feiting94 于 2015-12-4 18:32 编辑还在玩emwin的小伙伴们,你们可以看看touchGFX啦,可以看看这个效果什么是touchGFX?它是一款UI设计软件,专为低功耗、低主频的...
  • TouchGfx入门教程.7z

    2019-05-27 16:06:37
    本文为TouchGfx的入门教程TouchGFX为复杂图形的开发提供了一个可以通过触摸进行控制的框架。
  • TouchGFX使用教程(二)

    千次阅读 2020-06-17 15:48:00
    TouchGFX使用教程(二)通过TouchGFX创建事件逻辑函数Base类中的秘密View类的作用按键事件响应逻辑 通过TouchGFX创建事件逻辑函数 Base类中的秘密 View类的作用 按键事件响应逻辑
  • 基于CubeMX 5.0的TouchGFX移植教程,带截图,有工程代码
  • TouchGFX使用教程(五)

    千次阅读 2020-06-28 13:53:20
    TouchGFX使用教程(五)CanvasWidgetCanvasWidget内存分配TouchGFX Designer中的内存分配用户代码中的内存分配CWR坐标系点、线、面Demo注意 Graph控件是用于实现图表以及需要绘制图像的控件,该控件在TouchGFX ...
  • TouchGFX使用教程(八)MVP MVP
  • TouchGFX Designer是GUI的集成开发环境,所有与界面布局有关的工具都整合到了一起,一共分为4个功能区:画布、图片资源管理、文本资源管理、系统设置。 1、画布 画布是布置UI控件的工作界面,左侧提供了控件栏、屏幕...
  • TouchGFX使用教程(九)动画 动画
  • TouchGFX使用教程(七)

    千次阅读 2020-08-31 19:22:31
    TouchGFX使用教程(七)滑动列表 滑动列表
  • 本帖最后由 a1211762993 于 2017-4-6 15:20 编辑由于TouchGFX属于收费图形库,其价格对于普通电子爱好者来说偏高,导致使用TouchGFX的人数较少。考虑到图形库的推广问题,TouchGFX向大家提供了评估学习版,该版本面...
  • TouchGFX使用教程(六)

    千次阅读 2020-07-09 11:04:38
    TouchGFX使用教程(六)圆环型进度条制作原理制作流程Demo演示 圆环型进度条 制作原理 制作流程 Demo演示
  • TouchGFX使用教程(三)

    千次阅读 2020-06-18 13:31:47
    TouchGFX使用教程(三)界面事件控件修改方法图片等资源放置位置 界面事件 控件修改方法 图片等资源放置位置
  • TouchGFX使用教程(四)

    千次阅读 2020-06-20 11:31:41
    TouchGFX使用教程(四)下拉菜单自定义窗口菜单页高仿IPhone滑动窗口主页面显示多页面滑动 下拉菜单 自定义窗口 菜单页 高仿IPhone 滑动窗口 主页面显示 多页面滑动
  • TouchGFX基础教程(九)使用进度条
  • TouchGFX基础教程(六)使用翻译
  • TouchGFX基础教程(八)使用定时器
  • 基于CUBEMX5.0的Touchgfx移植教程

    千次阅读 2019-02-28 23:36:15
    参考: http://forum.armfly.com/forum.php?mod=viewthread&tid=90710 环境: 步骤: 1、 2、 3、 4、 5、 ...14、返回cubemx打开touchgfx 15、设置界面生成代...
  • 【DIY数字仪表】STM32F429移植TouchGFX到RT-Thread系统(1) 【DIY数字仪表】使用TouchGFX的MVP架构来实现GUI和硬件的双向交互(2) 【DIY数字仪表】RT-Thread移植touchgfx实现自动同步网络时间和天气预报(3) ...

空空如也

空空如也

1 2 3 4 5
收藏数 93
精华内容 37
关键字:

touchgfx教程