精华内容
下载资源
问答
  • 正点原子STM32H743 + 4342RGBLCD + touchgfx4.16.1 + stm32cubemx6.2.1 + keil5 实现了触屏控制数字增减
  • 通过上一节的操作,只用过C语言的同学可能觉得有些囫囵吞枣、消化不良,这一节将介绍C++语言的类、继承、虚函数三个概念,并梳理一下TouchGFX Designer生成的代码的组织结构,方便系统把握Touchgfx的知识点。...

    通过上一节的操作,只用过C语言的同学可能觉得有些囫囵吞枣、消化不良,这一节将介绍C++语言的类、继承、虚函数三个概念,但是并不涉及技术细节。最后梳理一下TouchGFX Designer生成的代码的组织结构,方便系统把握Touchgfx的知识点。有C++基础的同学可以直接看第四项。
    一、类
    是面向对象编程的最重要的概念,提出类的一个重要原因就是方便组织代码,使程序可读性更好。类比一下C语言中的结构体,定义如下一个结构体类型Student

    typedef struct {
    	int age;
    	int id;
    	char* name;
    } Student;
    Student xiaoming={18,123456,"小明"};
    

    结构体Student 一个很明显的作用就是把许多相关的数据组织到一起,通过变量xiaoming.age、xiaoming.id、xiaoming.name就可以访问age,id,name三个数据。
    类和结构体差不多,但是它不仅能把数据打包到一起,还能把函数也一起打包进来,如

    class Student
    {
    	int age;
    	int id;
    	string name;//c++推荐用string类型表示字符串
    	void playGames();
    	void study();
    }
    Student xiaoming;
    

    在面向对象编程的语境中,类中的数据和函数有了新的名字:属性(property)方法(methods)。用类声明一个变量叫实例化,或者说小明是Student的一个实例。类还能通过关键字控制属性和方法的访问权限,所谓访问权限就是指能否用实例名加 “.”运算符 进行访问,比如

    class Student
    {private:
    	int age;
     public:
    	int id;
    	string name;
    	void playGames();
    	void study();
    }
    Student xiaoming;
    

    这时,我们可以通过xiaoming.id、Xiaoming.name 问他的id,name,并且用xiaoming.playGames()和xiaoming.study(),让他去学习和玩耍,因为id,name,playGames(),study()这些属性和方法都是公开(public) 的,但是却不能用 “.” 运算符 访问他的age,因为这个属性被设置成了隐私(private)
    另外,我们希望在实例化的时候就给类的属性赋值,这就需要在类内部实现一个和类名相同的特殊方法:构造函数(constructor),构造函数没有任何返回值,连void都没有,添加构造函数后,上述代码变成

    class Student
    {private:
    	int age;
     public:
     	Student(int a,int b,string c)
     	{//初始化的代码都可以放在这里
     		age=a;
     		id=b;
     		name=c;
    	}
    	int id;
    	string name;
    	void playGames();
    	void study();
    }
    

    创建实例的时候,只需把参数一次性填入就行了

    Student xiaoming(18,123456,"小明");
    

    二、继承
    继承就是在现有类的基础上增加一些属性或方法,对基础类进行扩展,从而形成新的类,新的类术语叫派生类子类,被继承的类叫基类父类
    现在我们在学生这个类基础上构建一个国防生 类。国防生平时要进行训练,还会用枪,所以在可以这样定义

    class NationalDefenseStudent:public Student
    {
    	public:
    		 string gunName;
    		 void train();	
    		 //派生类的构造函数先调用基类的构造函数,然后再初始化新增的属性
    		 NationalDefenseStudent(int a,int b,string c,string d)Student(a,b,c)//调用基类构造函数
    		 {//初始化新增的属性
    		 	gunName=d;
    		 } 
    }
    

    这样,NationalDefenseStudent类就拥有了Student类所有的属性和方法,可以通过 “.”运算符 进行访问和调用,但是Student私有的属性和方法是没有被继承的,也就是说NationalDefenseStudent类里面没有age这个属性,但是这不合实际情况,所以可以用protected限定符替代private,这样age属性既能保证不会被外部访问,却能被派生类继承。
    三、虚函数’
    虚函数的作用是允许在派生类中定义与基类中具有相同名字的函数,并且可以通过基类指针来访问基类和派生类中的同名函数。 举个例子,

    //定义一个基类A
    class A{
    	public:
    	virtual void showMessage()
    	{
    		cout<<"this is from class A"<<endl;
    	}
    }
    //定义一个派生类B
    class B:public A{
    	publicvirtual void showMessage()
    	{
    		cout<<"this is from class B"
    	}
    }
    
    A a;//构造函数无参数时不需带上括()
    B b;
    A *c;
    c=&a;
    c->showMessage();//将输出this is from class A
    c=&b;
    c->showMessage();//将输出this is from class B
    

    可以看出,通过一个基类的指针,既可以访问基类的showMessage方法,也能问派生类的同名方法。
    四、Touchgfx Designer生成的代码结构

    由第三节的体验可以知道,Touchgfx制作GUI界面包括两方面的工作:(1)在TouchGFX Designer中拖动、布局控件 (2)在VS中编写界面运行逻辑。
    如图所示,TouchGFX Designer生成的代码结构分为三层:最底层是FRAMEWORK,这是Touchgfx提供的标准库,有的已经被编译成库文件,有的是源文件;中间是GENERATED层,完全由TouchGFX Designer根据我们的布局生成,最好不要手动改变这些文件里面的内容,因为下一次点击Generate Code 的时候,这些改动都会被覆盖掉;最上面是USER层,我们编写的所有代码在都放在这些文件里面,这些文件永远不会被Touchgfx Designer改变,这里的每一个类都继承自GENERATED中对应的类,比如Screen1View就继承自Generated中的Screen1ViewBase类。通过这样的分层组织方法,系统生成的代码和用户编写的代码实现了完全的解耦。在这里插入图片描述
    编程的时候,可以在Generated层的头文件里找到所有我们在Touchgfx Designer中用到的资源,比如屏幕上的控件、文本资源管理器里的文本、图片资源管理器中拥有的图片等,然后引用需要的头文件。
    这样看,Touchgfx Designer生成的代码逻辑还是很简单的,会一点面向对象编程就能轻松掌握,所以建议只用过C的同学还是要学一点C++,不要C++ Primer这种字典书,随便薄薄的一本就行,重点学习模板,Touchgfx中类无处不在,而模板会在注册回调函数的时候用到。

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

    展开全文
  • 在前两个礼拜 TouchGFX 更新了 4.13 版,版本的改动比较大,网上的教程都还只是停 留在早期的版本,早期的移植教程已经不适应于现在版本,这给晚入门的朋友们在移植上带 来很大的不便,所以在第二章介绍了新版本的...
  • 使用ART-PI的TouchGFX库驱动正点原子7寸RGB电容屏(分辨率1024*600)实现显示和触摸交互。
  • 该资源对应的博客:https://blog.csdn.net/ningjianwen/article/details/100151158 如何将STM32CubeMX + TouchGFX 工程中生成的图片,字库等超大数组保存到QSPI FLASH (W25Q256)
  • 1.使用RT-Thread 系统实现DIY数字仪表(一)——STM32CUBMX5.6移植touchGFX4.13 2.使用RT-Thread 系统实现DIY数字仪表(二)——把TouchGFX移植到RTThread系统 3.使用RT-Thread 系统实现DIY数字仪表(三)——RT...
  • 0003----手把手教你调用TouchGFX的外部SPI_FLASH存储数据

    千次阅读 热门讨论 2020-09-01 10:43:15
    如刚开始学习使用Touch GFX请先学习001----手把手教你制作TouchGFX的工程模板,此次在001基础上进行添加了FreeRTOS 1、把需要加载到片内Flash中 2、修改Keil配置 LR_EROM1 0x90000000 0x01000000 ...

    开发环境:CubeMX5.6.1(packages--F4--1.25.0)、Keil5(5.30.0.0--Keil.STM32F4xx_DFP.2.9.0)
    硬件开发板平台:野火STM32F429IG-V2 

     

    如刚开始学习使用Touch GFX请先学习001----手把手教你制作TouchGFX的工程模板,此次在001基础上进行添加了FreeRTOS



    1、把需要加载到片内Flash中

    2、修改Keil配置

    LR_EROM1 0x90000000 0x01000000  {    ; load region size_region
        ER_EROM1 0x90000000 0x01000000  {  ; load address = execution address
    		*.o (ExtFlashSection)
    	}
    }

    	    /**
         * @fn virtual bool HAL::blockCopy(void* RESTRICT dest, const void* RESTRICT src, uint32_t numBytes);
         *
         * @brief This function performs a platform-specific memcpy.
         *
         *        This function performs a platform-specific memcpy, if supported by the hardware.
         *
         * @param [out] dest Pointer to destination memory.
         * @param [in] src   Pointer to source memory.
         * @param numBytes   Number of bytes to copy.
         *
         * @return true if the copy succeeded, false if copy was not performed.
         */
    	virtual bool blockCopy(void* RESTRICT dest, const void* RESTRICT src, uint32_t numBytes);
    

    #include "stm32f4xx.h"
    #include "w25qxx.h"
    using namespace touchgfx;
    
    
    
    /**
     * Configure the LCD controller to fire interrupts at VSYNC. Called automatically
     * once TouchGFX initialization has completed.
     */
    void TouchGFXHAL::enableLCDControllerInterrupt()
    {
        // Calling parent implementation of enableLCDControllerInterrupt().
        //
        // To overwrite the generated implementation, omit call to parent function
        // and implemented needed functionality here.
    
        TouchGFXGeneratedHAL::enableLCDControllerInterrupt();
    }
    bool TouchGFXHAL::blockCopy(void* RESTRICT dest, const void* RESTRICT src, uint32_t numBytes)
    {
    	uint32_t dataOffset = (uint32_t)src;
    
      //if (dataOffset >= 0x90000000 && dataOffset < 0x92000000)
    	if (dataOffset >= 0x90000000 && dataOffset < 0x91000000)//如果GFX调用的地址在0x90000000~0x91000000之间执行
      {
        dataOffset =  dataOffset - 0x90000000;//dataOffset 最终等于卸载外置SPI_FLASH中的地址
        // for copying data from there.
        W25QXX_Read((uint8_t *)dest, dataOffset, numBytes);//读取SPI_FLASH内容
        return true;
      }
      else
      {
        // For all other addresses, just use the default implementation.
        // This is important, as blockCopy is also used for other things in the core framework.
        return HAL::blockCopy(dest, src, numBytes);
      }
    }

    void Screen1View::setupScreen()
    {
            //加载外部Flash中的存储内容,缓存到SDRAM的(uint16_t *)0xd0300000之后的0x400000的大小空间,最多加载128个文件
    		Bitmap::setCache((uint16_t *)0xd0300000,0x400000,128);//
    		Bitmap::cacheAll();
    	
        Screen1ViewBase::setupScreen();
    }

     

     

     

    本文参考KK大佬的文章编写的,KK大佬CSDN连接如下

    https://blog.csdn.net/sinat_31039061 

     

     

    展开全文
  • 二移植触摸屏驱动到TouchGFX 三通过TouchGFX Designer添加按钮以及文本框,并添加按钮单击事件 (本人业余时间接相关外包,欢迎联系!) 软件环境:STM32CubeMX5.3 、TouchGFX 4.10.0Designer、uVision5.28.0.0 硬件...

    目录

    一 编写触摸屏驱动

    二 移植触摸屏驱动到TouchGFX

    三 通过TouchGFX Designer添加按钮以及文本框,并添加按钮单击事件


    软件环境:STM32CubeMX5.3  、TouchGFX 4.10.0 Designer、uVision5.28.0.0

    硬件环境:正点原子阿波罗STM32F767开发板、4.3寸LCD接口屏(480×272)

    该篇文章接上一篇博客:使用STM32CubeMX 5.3配置使用TouchGFX

    最终实现效果如下图所示:

    1. 可以通过按钮“加”与“减”控制下方文本框中的数值显示。

    2. 通过触摸“显示数值的文本框”,将文本框的数值初始化为50并进行显示。

    3.本文工程链接:https://github.com/ningjw/stm32f7_os/tree/d2612251cb0d05c3834a79c61ef0d0fb06cf7ae2 为STM32CubeMX + TouchGFX + STM32F767

    一 编写触摸屏驱动

    触摸屏芯片型号为GT9147,关于该芯片如何驱动可参考博客 https://blog.csdn.net/Ningjianwen/article/details/92809485 的二、三小节。

    二 移植触摸屏驱动到TouchGFX

    在STM32CubeMX生成的代码中有一个STM32F7TouchController.cpp文件,我们需要做的很简单,就是实现该文件里的STM32F7TouchController::init()STM32F7TouchController::sampleTouch(int32_t& x, int32_t& y)函数,需要注意的是sampleTouch函数的编写,当按压触摸屏时,需要给x、y复制,并返回true;当松开时,需要返回false。下面天数代码

    void STM32F7TouchController::init()
    {
     /* USER CODE BEGIN F4TouchController_init */
    
      /* Add code for touch controller Initialization */
        GT9147_Init();//电容触摸屏控制器初始化
    
    /* USER CODE END F4TouchController_init */
    }
    
    bool STM32F7TouchController::sampleTouch(int32_t& x, int32_t& y)
    {
    /* USER CODE BEGIN  F4TouchController_sampleTouch  */
        if(touch_x == 0xffff){
            return false;
        }
        
        x = touch_x;
        y = touch_y;
        return true;
    
    /* USER CODE END F4TouchController_sampleTouch  */
    }

    三 通过TouchGFX Designer添加按钮以及文本框,并添加按钮单击事件

    使用TouchGFX Designer软件打开TouchGFX文件中后缀为touchgfx的文件,该文件怎么来的可以参考上篇博客使用STM32CubeMX 5.3配置使用TouchGFX.

    1. 添加背景图片,只支持png格式的图片,通过下图中的“+”按钮添加进工程之后,可以单击该图片,可以在工作区域添加背景。

    2. 在左侧面板找到Button控件,单击可添加按钮。然后可以通过修改右侧的属性面板进行各属性设置,我这里只贴部分设置。

       其中你可以发现你的软件在设置Typography时,并没有SongTi_Large选项。因为这个字体是需要手动添加命名的,目的是为了在LCD中显示汉字,下一步说明如何添加该字体。

    3. 默认字体为Verdana,该字体只支持英文显示,接下来添加可以显示汉字的字体。

    首先找到下图的“ADD NEW TYPOGRAPHY”按钮,然后在弹出的对话框中选择你需要的字体,并设置字体大小等,重新命名操作等,就可以在配置按钮属性的时候选择该字体了。

    配置到这里已经可以显示汉子了,但是该字体还不能显示0-9数字,以及一些特殊符号,我们可以配置该字体的“Wildcard Character”属性,以使得该字体支持显示0-9以及特殊符号的显示。

    4. 为按钮添加单击事件

    我们回到“Canvas”下的“Interaction”配置界面,点击“Add Interaction”按钮

    在弹出的对话框做如下配置。大概的意思就是,当名字为“buttonDown”的按钮发生单击事件时,执行虚函数buttonDownClicked。当名字为“buttonUp”的按钮发生单击事件时,执行虚函数buttonDownClicked。

    5. 添加文本框,用于显示数值

    找到Text Area空间,单击就可以添加该空间了。要想使得该文本框能够显示变量的数值,还需要在属性栏目配置WILDCARD(通配符)。关于文本框的属性配置有如下知识点:

    • 一个文本框最多只支持两个通配符号。
    • 通配符使用<*>表示,尖括号中的字符随意写,属于帮助文件,比如这里写<value> ,仅仅表示该通配符为一个数值,这里写成<number>或者干脆为<>都是一样的,程序并不关心尖括号里的字符。
    • Buffer size表示文本框能显示的字符串个数,由于字符串末有一个结束符,所以如果配置为5,则最多支持显示4个字符,对数值而言,最大支持到9999,最小支持到-999(-号也是一个字符串)。
    • 文本框不要设置为自动大小,手动设置W与H的值,且保证该文本框能显示完全4个字符,不然你可能看到的是截取后的字符
    • 由于文本框显示使用的是SongTi_Large字体,所以在添加字体的时候一定要添加对数字还有负号的支持,具体见第3小节。
    • 要实现对文本框的单击处理,还需要在MIXINS下勾选“ClickListener”。

     6. 代码分析以及实现buttonDownClicked与buttonUpClicked函数

    通过点击“Generate Code”可以生成相关代码,通过keil打开工程后,发现代码已经更新了,在Application/User/TouchGFX/generated下找到Screen1ViewBase.cpp文件,通过该文件可以打开Screen1ViewBase.hpp,我们可以发现在Screen1ViewBase类中已经定义了buttonDownClicked、buttonUpClicked两个函数,该两个函数需要进行重写。

    回到Screen1ViewBase.cpp文件,当发生按钮单击事件时,会进入buttonCallbackHandler函数,该函数调用了buttonDownClicked、buttonUpClicked两个函数。

    找到Application/User/TouchGFX/gui下的screen1view.cpp,通过该文件打开Screen1View.hpp,我们发现了一个Screen1View类,该类继承了Screen1ViewBase类,我们需要在这里修改代码,添加函数声明:

    (Tips:"..../generated"栏目下的文件在每次使用TouchGFX Designer软件后都会自动生成,".../gui只在第一个生成代码时会更新该栏目下的文件,所以我们最好只修改".../gui"下的代码。)

    回到screen1view.cpp,在该文件添加代码,实现对buttonDownClicked、buttonUpClicked两个函数的重写,主要是实现对私有变量TextValue的加减操作,然后将该变量转换成字符串后显示在textArea1区域。

    进行到此处已经可以通过单击“加”“减”按钮实现对文本框的数值进行加减并进行显示了。

    7 添加代码实现对文本框的单击事件处理

    由于在第5小节配置TextArea时勾选了“ClickListener”,我们可以在Screen1ViewBase.hpp文件中发现对textArea1变量的定义多了个ClickListener类如下:

    touchgfx::ClickListener< touchgfx::TextAreaWithOneWildcard > textArea1;

    我们找到Screen1View.hpp文件,在该Screen1View类中添加如下代码:

    在Screen1View.cpp文件定义TextAreaClickHandler函数,并修改Screen1View函数

    void Screen1View::TextAreaClickHandler(const TextAreaWithOneWildcard& ta, const ClickEvent& evt)
    {
        if (&ta == &textArea1)
        {
            TextValue = 50;
            Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZE, "%d", TextValue);
            textArea1.invalidate();
        }
    }
    将
    Screen1View::Screen1View()
    {
    
    }
    
    修改为:
    Screen1View::Screen1View():
              TextAreaClickedCallback(this, &Screen1View::TextAreaClickHandler)
    {
    
    }

    全部工作完成。

    展开全文
  • 本打算用STM32CubeMX启动touchGFX,使用的是STM32F469探索板,各项跟GFX相关的设置都设好了,就差最后在板子上验证两个软件有没有整合成功了,结果生成代码后编译完成,但是链接时出现了大量罕见错误(共计103个)如...
  • 最近发现一款适用于STM32的UI设计软件,界面炫酷,操作方便,经过几天的摸索,终于将TouchGFX+STM32CubeMX+STM32CubeIDE创建项目工程的全过程走通。 在安装TouchGFX时遇到电脑无法安装.net framework 4.5.2的问题,...

    最近发现一款适用于STM32的UI设计软件,界面炫酷,操作方便,经过几天的摸索,终于将TouchGFX+STM32CubeMX+STM32CubeIDE创建项目工程的全过程走通。
    在安装TouchGFX时遇到电脑无法安装.net framework 4.5.2的问题,目前还没解决,换了台电脑。
    在创建TouchGFX Application时,频繁出现下载Application Template失败,几乎浪费了一天的时间,建议大家在下载成功后,先保存一版原始版本,以备后用。
    本人以前开发STM32采用的是keil MDK5,而TouchGFX、STM32CubeMX、STM32CubeIDE这些软件都是首次接触,有理解不到位的地方,欢迎大家指出,共同探讨学习!

    相关软件,都可以在ST官网下载。

    下面开始介绍创建项目的过程:
    1.先通过TouchGFX创建空白UI模板工程,开发板选择STM32F746G Discovery Kit;
    在这里插入图片描述
    在这里插入图片描述
    2.点击Generate code进行编译;
    3.在工程文件夹内,点击STM32F746G_DISCO.ioc,通过STM32CubeMX打开;
    在这里插入图片描述
    在这里插入图片描述
    4.如果遇到弹窗提示版本问题,点击Migrate,更新工程;
    在这里插入图片描述
    5.进入配置界面,在Project Manager–Project中按下图进行配置,其它按默认配置;
    在这里插入图片描述
    在这里插入图片描述
    6.在clock configuration中将时钟改为216,其余不变;
    在这里插入图片描述
    7.点击GENERATE CODE,生成工程代码
    在这里插入图片描述
    在这里插入图片描述
    8.结束后点击Open Project,在STM32CubeIDE中打开工程;
    在这里插入图片描述
    在这里插入图片描述
    9.弹窗提示已经存在工程,是否移除?点YES;
    在这里插入图片描述
    在这里插入图片描述
    10.此时,TouchGFX中提示Project Modified Externally,点击Yes,并重新Generate Code;同时在STM32CubeIDE中Refresh工程;(记得养成习惯:在TouchGFX中修改UI并generate code后,在STM32CubeIDE中一定要Refresh工程,反之亦然)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    11.在Project–Properties–C/C++ Build–Settings中勾选箭头所指位置,用于编译输出hex文件(如果不需要hex,这一步也可以跳过);
    在这里插入图片描述
    在这里插入图片描述
    12.在STM32CubeIDE中点击Project–Build All编译工程,编译完成后,点击Debug调试,并点击Resume运行,此时板子开始运行代码,但是由于是空白工程,没有直观的现象;
    在这里插入图片描述
    在这里插入图片描述

    13.回到TouchGFX,在UI上添加控件(image、button),并按图示设置(关键是为button添加一个interaction),然后重新generate code;

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    14.在STM32CubeIDE中Refresh工程,可以看到相关控件已经出现在Screen1ViewBase.cpp和Screen1ViewBase.hpp的代码中,但这两个文件都是只读的,因此需要到Screen1View.hpp,Screen1View.cpp进行Override and implement;
    在这里插入图片描述
    在这里插入图片描述
    15.将function1()加入Screen1View.hpp,Screen1View.cpp;
    在这里插入图片描述
    在这里插入图片描述
    16.下面是将UI控件与硬件关联,在实际的项目中会常用:
    17.定义一个按键,并初始化;
    在这里插入图片描述
    在这里插入图片描述
    18.在Screen1View.cpp中添加动作代码,注意,需要添加main.h头文件
    在这里插入图片描述
    19.最后,Build all、Debug、Resume,在开发板上运行程序;
    20.测试:在屏幕上按下button1按钮,image1消失;先按住开发板上的B_USER按键再按下屏幕上button1按钮,image1出现;
    在这里插入图片描述
    在这里插入图片描述

    21.PS:通过STM32CubeMX配置过工程后,再到TouchGFX上运行simulator或target,会报错,原因还未详查(在原始工程上则正常)。
    在这里插入图片描述

    展开全文
  • Touchgfx现在最新的版本是4.13,CubeMX是5.6,随着版本的迭代,CubeMX与Touchgfx集成度越来越高,用户入门成本也越来越低。Touchgfx可以在所有stm32芯片上运行,但是官方推荐的配置是带有图形专用加速器DMA2D的芯片...
  • #endif 3 添加触摸驱动到touchgfx中 extern "C" { #include "ft5206.h" void ft5206_init(void); uint8_t ft5206_scan(TouchTypedef *touch); } TouchTypedef mtouch; void STM32TouchController::init() { /** ...
  • TouchGFX Designer是GUI的集成开发环境,所有与界面布局有关的工具都整合到了一起,一共分为4个功能区:画布、图片资源管理、文本资源管理、系统设置。 1、画布 画布是布置UI控件的工作界面,左侧提供了控件栏、屏幕...
  • 1.STM32F429移植touchGFX(一)——通过STM32CubeMX移植TouchGFX 2.STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互 3.STM32F429移植touchGFX(三)—— 实现DIY数字仪表 实验平台: 硬件: 野火...
  • touchGFX学习

    千次阅读 2019-09-17 21:55:27
    一、touchGFX入门 1.touchGFX软件及visual Studio安装与联调https://www.jianshu.com/p/777c7a75ade7 2.按钮与消息响应https://www.jianshu.com/p/ea170dc92317 3.多屏呈现与MVP框架(1)...
  • TouchGFX使用教程

    千次阅读 2020-06-17 11:21:50
    TouchGFX使用教程(一)前言TouchGFX背景TouchGFX工程的结构合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • 1.使用RT-Thread 系统实现DIY数字仪表(一)——STM32CUBMX5.6移植touchGFX4.13 2.使用RT-Thread 系统实现DIY数字仪表(二)——把TouchGFX移植到RTThread系统 3.使用RT-Thread 系统实现DIY数字仪表(三)——RT...
  • touchgfx遇到的坑

    2021-04-19 11:38:22
    弄块液晶屏,显示分辨率800480,结果触摸分辨率是1024600,液晶驱动改过,坐标修改后正常使用 x(800) = x(1024)800/1024; y(480) = y(1024)480/600;
  • 如果已经有stm32的touchfgx的工程,并且里面包括了开发的其他相关程序,这时候当touchgfx的应用程序是其他人开发的,需要集成进来。由于touchgfx designer根据不同的应用产生的工程文件以及依赖的cpp和hpp都不一样,...
  • STM32F429 Disco板上具有Logger的TouchGFX应用程序 该项目包括使用FreeRTOS实用程序TouchGFX应用程序和Logger功能。 * GUI应用程序代码库是使用STM TouchGFX软件生成的,并且根据应用程序进行了进一步的更新。 * ...
  • 我们在wifi扫描的时候或者数据列表显示的时候,...一.TouchGFx Designer中设计布局 1.添加自定义组件,滚动条元素 自定义控件中,一个背景图片,一个图标,一个文本。 2.添加列表控件,在屏幕中添加背景图片、Scr
  • 通过本项目可以学习到的新技术有:RT-Thread系统、TouchGFX、微信小程序、面向对象编程思想等。每个关键词里都有很多值得深思的技术细节。 本项目所要实现的功能有: 显示屏第一页显示时钟、近三天天气预报和传感器...
  • TouchGFX使用教程(五)

    千次阅读 2020-06-28 13:53:20
    TouchGFX使用教程(五)CanvasWidgetCanvasWidget内存分配TouchGFX Designer中的内存分配用户代码中的内存分配CWR坐标系点、线、面Demo注意 Graph控件是用于实现图表以及需要绘制图像的控件,该控件在TouchGFX ...
  • TouchGFX使用教程(三)

    千次阅读 2020-06-18 13:31:47
    TouchGFX使用教程(三)界面事件控件修改方法图片等资源放置位置 界面事件 控件修改方法 图片等资源放置位置
  • 使用Touchgfx时当做的应用比较复杂的时候,图片资源比较多比较大就需要将图片资源存储到外部Flash中,否则的话默认没有配置外部下载区域就是默认放在芯片内存,会提示内存不够。通过本文章的学习后可以轻松的实现...
  • 在项目中出现故障信息,或者是常见的设备信息等都需要小弹窗,当然小弹窗的实现方式也有很多,下面就讲一个touchgfx 设计器自带的一种方式。 一.添加小弹窗 (1)效果如下: 点击设备信息按钮后,弹出小窗口,...
  • touchGFX安装与初识

    2020-08-30 21:17:56
    touchGFX安装与初识 文章目录touchGFX安装与初识前言1.touchGFX安装2.初识界面开始界面设计界面资源界面后记 前言 本系列文章由萧萧宵小(wurendikunn@outlook.com)编写,转载请注明出处。 文章链接: 本文涉及到的...
  • 1.使用RT-Thread Studio实现DIY数字仪表(一)——STM32CUBMX5.6移植touchGFX4.13 2.使用RT-Thread Studio实现DIY数字仪表(二)——把TouchGFX移植到RTThread系统 3.使用RT-Thread Studio实现DIY数字仪表(三)——...
  • 1.使用RT-Thread Studio实现DIY数字仪表(一)——STM32CUBMX5.6移植touchGFX4.13 2.使用RT-Thread Studio实现DIY数字仪表(二)——把TouchGFX移植到RTThread系统 3.使用RT-Thread Studio实现DIY数字仪表(三)——...
  • 1、详细介绍了touchgfx4.13在cubemx5.5版本下的常规移植; 2、分享了一些touchgfx的开发思路; 3、介绍了如何移植别人的touchgfx工程到自己的工程中; 4、介绍了如何把工程迁移到RT-Thread; 5、给刚接触touchgfx的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 424
精华内容 169
关键字:

touchgfx程序