TouchGFX在STM32F429IGT6上的移植(FreeRTOS版本)

TouchGFX在STM32F429IGT6上的移植(FreeRTOS版本)

目录

一、移植环境

二、应用框架

三、TouchGFX移植

1、步骤

2、所需组件

3、STM3CubeMX配置

(1)配置RCC系统时钟

(2)配置SYS

(3)配置FMC(SDRAM)

(4)配置DMA2D,打开DMA2D中断

(5)配置LTDC,打开LTDC中断

(6)开启CRC

(7)配置freeRTOS,创建2个任务

(8)配置TouchGFX

(9)生成工程

4、执行TouchGFX Designer

(1)TouchGFX Designer界面

(2)添加GUI应用

(3)生成代码

5、触摸驱动移植

一、移植环境

硬件:

STM32F429IGT6,1MB FLASH,256KB SRAM

800x480 7寸的RGB液晶屏

外扩256MB的SDRAM(MT48LC16M16A2)

触摸屏,驱动芯片为I2C接口的TSC2046

软件:

STM32CubeMX 6.0.1

TouchGFX Designer 4.14.0

IAR 8.11.2

说明:

STM32CubeMX 5.0至5.4的版本(含5.4) 跟 STM32CubeMX 5.4之后的版本对TouchGFX 的支持方式不太一样,生成的工程目录结构也不一样。不能混用!!!

在STM32CubeMX 5.0至5.4的版本中,是在中间件中选择GRAPHICS组件来配置TouchGFX的,还可以在CubeMX中直接打开TouchGFX Designer来设计UI部分

在STM32CubeMX 5.0之后的版本中,是通过添加第三方软件包的形式来配置TouchGFX,中间件中不再有GRAPHICS组件,也不可以直接在CubeMX中代开TouchGFX Designer了

二、应用框架

三、TouchGFX移植

有两种方式可以创建出TouchGFX的工程。这里使用的是第一种

根据目标板卡,使用STM32CubeMX从零开始创建

使用Touch Designer提供的模板,快速构建出一个跟目标板卡相似的Demo工程

1、步骤

STM32CubeMX 覆盖了红色框中部分

2、所需组件

3、STM3CubeMX配置

(1)配置RCC系统时钟

像素时钟大小:1056 * 705 * 60/1024/1024=42M,像素时钟最大值为42M,我这里设置为25M

(2)配置SYS

(3)配置FMC(SDRAM)

一定要注意配置的GPIO要跟自己的硬件要一致!!!因为SDRAM有的引脚可以在多个GPIO上复用。还有就是生成的工程中有没有SDRAM的初始化程序

(4)配置DMA2D,打开DMA2D中断

(5)配置LTDC,打开LTDC中断

一定要注意配置的GPIO要跟自己的硬件要一致!!!

(6)开启CRC

(7)配置freeRTOS,创建2个任务

GUITask用于TouchGFX的处理

void StartGUITask(void const * argument)

{

/* USER CODE BEGIN StartGUITask */

MX_TouchGFX_Process();

/* Infinite loop */

for(;;)

{

osDelay(1000);

}

/* USER CODE END StartGUITask */

}

LEDTask用于心跳灯的闪烁

void StartLEDTask(void const * argument)

{

/* USER CODE BEGIN StartLEDTask */

/* Infinite loop */

for(;;)

{

HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin);

osDelay(1000);

}

/* USER CODE END StartLEDTask */

}

(8)配置TouchGFX

打开TouchGFX软件包

配置TouchGFX

(9)生成工程

使用CubeMX生成工程后,先不要打开IAR工程,还需要执行Touch Designer来设计UI部分,完善工程

4、执行TouchGFX Designer

使用CubeMX配置只是完成了红框中的部分,接下来就使用TouchGFX Designer来完善工程

生成工程后,在Src目录下有个 ApplicationTemplate.touchgfx.part,点击这个链接就可以打开TouchGFX Designer

(1)TouchGFX Designer界面

(2)添加GUI应用

第一步:创建screen1,放置一个Box控件和Button控件,设置Box的坐标为(0,0)大小为800x480,设置Button的坐标和按下释放时的背景图片,图片可以从阿里巴巴矢量图标库下载,然后放到…\Src\assets\images目录下;添加Interaction,实现通过点击按钮切换到screen2的功能

第二步:创建screen2,步骤跟第一步类似,只是多了7个Line控件用来显示7中颜色,同样点击按钮可以切换到screen3

第三步:创建screen3,主要添加了Animated Image控件,用于动态的定时切换图片,点击按钮又回到screen1

(3)生成代码

点击Generate Code就可以生成代码了,此时再用IAR打开工程,TouchGFX相关的代码就会自动添加进工程中了;同时在Src目录下也会多出一个”xxxx.touchgfx“的文件,以后直接打开这个文件就可以继续使用TouchGFX Designer设计UI了

5、触摸驱动移植

在完成以上配置后,LCD液晶屏就可以点亮了,但是触摸屏还不能使用,还需要添加触摸驱动;触摸驱动的添加也比较简单,首先根据自己板卡的触摸芯片添加驱动代码,然后完善 STM32TouchController.cpp 中的两个函数就可以了

TouchGFX在STM32F429IGT6上的移植(FreeRTOS版本)相关教程

Qt4.6.3移植

Qt4.6.3移植 主机平台:Ubuntu10.04 硬件平台:FL2440 交叉编译器:arm-linux-gcc-4.3.2 一、安装交叉编译器 1、下载交叉编译工具arm-linux-gcc-4.3.2.tgz,并解压到/usr/local/arm下 tarzxvfarm-linux-gcc-4.3.2.tgz–C/ 此时会生成/usr/local/arm/4.3.2 2

stm32代码移植to-txr

stm32代码移植to-txr PS: st官方文件如stm32f10x_gpio.c,.h以及stm32f10x_usart.c,.h和我们自己写的结构相似(st前缀的文件切记不能改,除了stm32f10x_it.c(中断相关,具体后面讲)),c是函数定义,h是函数声明,一般先去h里面找对应函数(一般在末尾),

以官方uboot移植uboot(start.S移植)

以官方uboot移植uboot(start.S移植) //添加供电锁存ldr r0, =0xE010E81Cldr r1, =0x301str r1, [r0] (文件路径board/samsung/goni/lowlevel_init.S ) //添加串口打印Oldrr1, =0x4f4f4f4fldr r2, =0XE2900820strr1, [r2]@'O'movpc, lr (文件路径board/samsu

完美移植知更鸟网址收藏功能到wordpress大学的wpdx主题代码教程

完美移植知更鸟网址收藏功能到wordpress大学的wpdx主题代码教程 页面代码来自知更鸟的begin主题,基本完美移植,感谢幂彀社区https://www.teelm.com/兄弟的大力帮忙! 略缩图剪裁是用的timthumb,所以要修改timthumb-config.php里面的参数,不然不会显示缩略

MAVLink通讯协议在STM32上移植,并自定义协议(这篇还写了在STM3

MAVLink通讯协议在STM32上移植,并自定义协议(这篇还写了在STM32上怎么收发数据,调用哪些函数) 这篇还写了在STM32上怎么收发数据,调用哪些函数,这个不错。 摘自:https://www.jianshu.com/p/e57aa664103f?from=singlemessage MAVLink通讯协议在STM32上移

野火F1开发板STM32案例-MultiButton移植

野火F1开发板STM32案例-MultiButton移植 野火F1开发板STM32案例-MultiButton移植 野火STM32F103ZET6 霸道V2开发板 正点原子F1系列开发板 Keil MDK 5.31 串口调试助手 开源项目 MultiButton,一个小巧简单易用的事件驱动型按键驱动模块,作者 0x1abin。 这个项

Flask-移植开发环境到VSCode-手机局域网访问测试

Flask-移植开发环境到VSCode-手机局域网访问测试 title: Flask 移植开发环境到VSCode 手机局域网访问测试 版本控制 author: HardyDragon tags: Flask 为了更方便的进行编码,以及版本控制,将ubuntu的flask项目切换到win下的vscode开发 需要注意的是flask第一

一Java语言基础(1)_走进java——跨平台/可移植性

一、Java语言基础(1)_走进java——跨平台/可移植性 2018-04-09 一、平台相关性: windows系统只能运行windows的可执行文件(大部分是.exe) linux系统只能运行linux的可执行文件 windows的可执行文件不能直接运行在linux系统中,linux的可执行文件也不能直

stm32f429igt6跑linux,TouchGFX在STM32F429IGT6上的移植(FreeRTOS版本)相关推荐

  1. 【githubshare】基于 C 语言编写的一款 2D 太空射击游戏,已在 Windows 10 和 Ubuntu Linux 16.04 系统上跑通测试

    基于 C 语言编写的一款 2D 太空射击游戏:space-shooter.c,已在 Windows 10 和 Ubuntu Linux 16.04 系统上跑通测试. GitHub:github.com ...

  2. 怎样实现在单片机上跑LINUX系统,简述Linux如何应用在嵌入式单片机上

    大多数功能更强大的紧凑型单片机(SBC)都运行一种流行的Linux发行版,专门用于这些嵌入式板.尽管没有针对嵌入式应用程序的特定版本的Linux内核,但与运行Linux的PC或台式设备的区别通常很小. ...

  3. 跑linux主机配置,在 StorSimple Linux 主机上配置 MPIO | Microsoft Docs

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 在运行 CentOS ...

  4. surfacert能跑java么_Surface RT竟然能跑Linux!微软悄然封杀

    原标题:Surface RT竟然能跑Linux!微软悄然封杀 2012年诞生的Surface RT平板机就产品而言挺悲剧的,基于ARM架构跑Windows RT操作系统,但是不兼容x86环境,导致产品 ...

  5. Android4也能跑Linux了,Linux Deploy了解一下

    上次发了(你想在旧Android手机上装Linux系统吗?看这里)之后,目前已经能够基本实现使用UserLAnd在Android设备上跑Linux了.已经探明的版本是6.0及以上的版本. 我手上目前有 ...

  6. ZYNQ UltraScale 双核裸跑 / 裸跑 + Linux

    # 1 背景提出     某项目对中断延迟有很高的要求,客户的构架为:PPC+ Vxworks,延迟时间大概:10us.(因硬件设计原因, 还可以更小).我们在Linu系统下测试中断延迟大概几百us, ...

  7. linux 类似winscp_mac如何连接远程linux,类似windows上的putty和winscp

    windows上有putty可以通过ssh协议连接远程linux系统. mac上也可以用终端连接,转自:http://www.unixnewbie.org/putty-equivalent-for-m ...

  8. Linux redhat 5.4上安装MYDNS

    Linux redhat 5.4上安装MYDNS 一. 1,MYDNS 的简介: MyDNS是一个UNIX平台下的免费DNS服务器端软件.它被设计成直接从数据库中读取DNS记录软件,并且修改记录后也可 ...

  9. Linux环境Shell脚本上传下载阿里云OSS文件

    为什么80%的码农都做不了架构师?>>>    Linux环境Shell脚本上传下载阿里云OSS文件 背景 工作中由于我们项目生成的日志文件比较重要,而本地磁盘空间有限存储不了多久, ...

最新文章

  1. VS 打开No EditorOptionDefinition export found for the given option name问题解决
  2. cloudemanager安装时出现ProtocolError: ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized问题解决方法(图文详解)...
  3. 使用SharedPreferences进行数据存储
  4. C#中System.ServiceProgress报错
  5. 【译】Diving Into The Ethereum VM Part 3 — The Hidden Costs of Arrays
  6. zookeeper集群搭建配置zoo.cnf
  7. Opencms中要注意的地方
  8. Bootstrap全局css样式_表单
  9. 鼠标指针放置上面,显示内容_使鼠标指针远离您键入的内容
  10. FLEXAIR 界面展示。
  11. Nocatalog 下的RMAN 增量备份 shell脚本
  12. java判断线段是否相交函数_判断线段是否相交… | 学步园
  13. SQL数据库的使用:创建表结构
  14. ubuntu18.04 ros 使用anaconda创建虚拟环境 python3.7安装 opencv-3.4.6,TensorFlow安装,notebook
  15. IoT:MQTT协议详解
  16. OpenCV实现基于图像内容检索--视频播放(上)
  17. 程序设计实习MOOC / 程序设计与算法(二)第二周测验(2018春季)
  18. 形容词,名词记忆(五):ing ,ed 后缀常用词
  19. 雪花飘落代码java_JavaScript实现雪花飘落效果
  20. 【audio】耳机插拔/线控按键识别流程

热门文章

  1. YOJ3394-挑剔的H胖胖
  2. 统计学原理 统计中的几个基本概念
  3. 区块链DAPP开发入门课程(PHP版)
  4. 威纶通UI模板,威纶通,HMI模板,触摸屏模板,威纶通触摸屏
  5. C51单片机仿真学习笔记
  6. 形态学处理梯度、顶帽、黑帽
  7. 【KNIME案例】基于工作流的移动端系统工况参数监控
  8. 赚商联盟:知识付费时代通过购买网课来缓解焦虑,是对还是错?
  9. 大佬总结的电磁兼容知识,EMC整改六步走,看完感觉太简单了点
  10. geth配置中,genesis.json的几个问题