Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何在ART-PI上创建TouchGFX工程

如何在ART-PI上创建TouchGFX工程

作者头像
AIoT-KK
发布于 2020-11-09 07:23:48
发布于 2020-11-09 07:23:48
93500
代码可运行
举报
运行总次数:0
代码可运行

实验平台:

硬件:RT-Thread官方ART-PI H750开发版,正点原子4.3寸RGBLCD屏(800*480) 软件:开发环境 MDK 或 RT-Thread Studio 1.1.5,TouchGFXDesigner v4.15 和 STM32CubeMX V6.0.1,env工具

移植TouchGFX到其他操作系统的原理

  1. TouchGFX可以运行在带操作系统和不带操作系统的应用中,默认支持的操作系统为FreeRTOS,用户想要更换操作系统,只需要重新实现OSWrappers类,便可以切换不同的RTOS。
  1. 根据touchgfx需要的组件构成,在rtthread中添加touchgfx需要的外设。

在ART-PI中使用TouchGFX

为了方便广大ART-PI的用户使用TouchGFX,免去移植的烦恼,官方已经在ART-PI的SDK中集成了TouchGFX软件库,只需要简单的配置,便可以轻松使用TouchGFX。

使用RT-Thread Studio 开发

  1. 打开 RT-Thread Studio 的包管理器,安装 ART-PI SDK 资源包
  1. 安装完成后 选择基于 开发板 创建工程
  1. 打开TouchGFX Library
  1. 打开DMA2D和CRC外设 (或者通过CUBEMX打开DMA2D和CRC外设)
  1. 配置C++编译规则
  1. 添加GT9174触摸软件包
  1. 编译下载

使用 MDK 开发

  1. 在 ART-Pi SDK仓库 下载 SDK
  2. 进入工程目录。如:sdk-bsp-stm32h750-realthread-artpi\projects\art_pi_blink_led
  3. 以管理员权限打开 windows 命令行 ,执行 mklink 命令,分别为 rt-threadlibraries 文件创建符号链接
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
E:\project\sdk-bsp-stm32h750-realthread-artpi\projects\art_pi_blink_led>mklink /D rt-thread ..\..\rt-thread
为 rt-thread <<===>> ..\..\rt-thread 创建的符号链接

E:\project\sdk-bsp-stm32h750-realthread-artpi\projects>mklink /D libraries ..\..\libraries
为 libraries <<===>> ..\..\libraries 创建的符号链接

E:\project\sdk-bsp-stm32h750-realthread-artpi\projects>
  1. 打开TouchGFX Library
  1. 添加GT9174触摸软件包
  1. 使用 ENV 工具执行 scons --target=mdk5
  2. 打开DMA2D和CRC外设 (或者通过CUBEMX打开DMA2D和CRC外设)
  1. 配置MDK 将SDK中ART-Pi_W25Q64.FLM复制到MDK安装目录的Keil_v5\ARM\Flash下。复制后会自动识别出下载算法。

不使用Micro LIB库。

  1. 编译下载

UI开发及仿真

使用TouchGFX 4.15.0 Designer 仿真 在libraries文件夹下找到TouchGFX,打开art_pi.touchgfx。

使用Visual Studio 仿真 在TouchGFX文件夹下找到simulator,打开Application.sln。

在TouchGFX Designer设计完UI,刷新工程,即可将UI更新到项目中。

注意事项

1. 如何更换屏幕 ART-PI的LCD驱动默认支持RGB接口,更好屏幕后,只需要修改对应的参数即可。

用文本文档打开ApplicationTemplate.touchgfx.part,调整分辨率

修改好,双击打开,重新生成UI工程。 2. 如何更改色深 默认支持RGB888 24位色深和RGB565 16位色深,只需要修改LCD_BITS_PER_PIXEL和LCD_PIXEL_FORMAT这两个宏,

用文本文档打开ApplicationTemplate.touchgfx.part,调整色深

修改好,双击打开,重新生成UI工程。 3. C语言和C++如何互相调用 c方式编译和c++方式编译,其差异就在于符号表标识符。同一个函数名,在c方式编译的其函数名跟编译前的函数一致,c++方式编译的则是以函数名结合参数作为编译后的函数名。cpp编译器是兼容c语言的编译方式的,所以在编译cpp文件的时候,调用到.c文件的函数的地方时,需要用extern “C”指定用c语言的方式去编译它,extern “C”是c++方式编译才认识的关键字,在c++编译的方式会定义__cplusplus宏,c语言编译器没有__cplusplus宏和extern “C”关键字。 C++语言调用C文件中的函数: 在编译cpp文件的时候,调用到.c文件的函数的地方时,需要用extern “C”指定用c语言的方式去编译它

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
extern "C"
{
    uint32_t LCD_GetXSize();
    uint32_t LCD_GetYSize();
}

C语言的头文件要使用宏定义包含函数接口。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#ifdef __cplusplus
 extern "C" {
#endif
.
.
.
#ifdef __cplusplus
}
#endif

C语言调用C++文件中的函数: 对于C++文件中的普通函数,可以直接用extern "C" 对函数进行修饰,对于c++的重载函数或成员函数,需要进行二次封装后,再使用extern "C"对函数修饰,函数内部的代码依然是使用c++的编译器编译。 例如在xx.cpp中对函数进行声明,在xx.c中进行调用:

xx.cpp

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
extern "C" void touchgfx_init();
extern "C" void touchgfx_taskEntry();
void touchgfx_init()
{

}
void touchgfx_taskEntry()
{

}

xx.c

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void touchgfx_init(void);
void touchgfx_taskEntry(void);

void MX_TouchGFX_Init(void)
{

  touchgfx_init();
}

void MX_TouchGFX_Process(void)
{
  touchgfx_taskEntry();
}

4. 建议的开发方式 建议使用touchGFX Designer配合Visual Stdudio来开发UI,与硬件解耦,采用前后端分离的开发方式,可以提高开发效率。 代码中可以使用宏来规避开发环境不同导致的错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*例如通过宏:*/
#ifdef SIMULATOR
/*使用VS仿真的代码*/
#else
/*使用HAL库的代码*/
#endif
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AIoT开源项目分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RTThread的TouchGFX软件包使用说明
TouchGFX是一个基于STM32硬件由C++写成的软件框架,使用 ST 芯片的用户可以免费使用 touchgfx。
AIoT-KK
2020/12/16
1.2K0
RTThread的TouchGFX软件包使用说明
RT-Thread OLED驱动流程(RTT-Studio平台))
最近RT-Thread举办了一个RTT全连接大赛,也是借着这次机会,申请了一块RTT的STM32H750为主控芯片的RTT核心板,做工还是很漂亮的,老规矩,话不多说,上干货!
用户8913398
2021/08/16
1.9K0
RT-Thread OLED驱动流程(RTT-Studio平台))
【DIY数字仪表】STM32F429移植TouchGFX到RT-Thread系统(1)
硬件: 野火挑战者STM32F429 V1开发版,5寸屏 软件:最新版本的STM32CubeF4固件库,TouchGFXDesigner v4.13和 STM32CubeMX v5.6.1,开发环境MDK v5.29
AIoT-KK
2020/07/13
1.5K0
【DIY数字仪表】STM32F429移植TouchGFX到RT-Thread系统(1)
RT-Thread 的 CPU 固件移植理解
在嵌入式领域有多重不同的 CPU 架构,我们知道 RT-Thread 是支持不同架构的嵌入式操作系统,我们先来大概看一下 RT-Thread 的架构。
苏州程序大白
2022/04/14
1K0
RT-Thread 的 CPU 固件移植理解
从零编写STM32H7的MDK SPI FLASH下载算法
当我们要下载编译好的镜像到Flash时,首先要做的一步就是选择合适的Flash下载算法,而这个算法本身就是一个FLM文件:
AIoT-KK
2023/03/01
1.4K0
从零编写STM32H7的MDK SPI FLASH下载算法
[小技巧]使用静态库提高TouchGFX的编译速度
前边有篇文章讲过怎么提高Touchgfx的开发效率,[小技巧]使用vscode和armclang编译器改善MDK开发效率。但是由于touchgfx的代码量过于庞大,对于编译的速度来说还是不够快,接下来使用静态库的方式更进一步提升开发效率。
AIoT-KK
2020/11/09
1.5K0
[小技巧]使用静态库提高TouchGFX的编译速度
STM32CubeMX |42-使用DMA2D加速显存数据传输
STM32CubeMX | 41-使用LTDC驱动TFT-LCD屏幕(RGB屏)。
Mculover666
2021/07/23
3.1K2
STM32CubeMX |42-使用DMA2D加速显存数据传输
移植一个实时OS很难?那就手把手教你如何快速移植一个RT-Thread Nano吧!
最近在学习RT-Thread的使用,同时也相当于在拿它评估做产品的软件开发周期,最终学习的目的也就是希望能在未来的项目上用起来,STM32CubeMX其实已经支持了RT-Thread Nano的配置了,但我还是希望手动移植一下,没想到移植RT-Thread Nano如此简单,必须分享出来,哈哈哈!
杨源鑫
2020/06/01
3K0
教你动手移植RT-Thread到国产MCU
摘要 现在芯片价格不断上涨,国内很多厂商也在不断的找替换方案。以ST为例,一个芯片涨了十几倍。蛋疼。。。。 最近刚好有机会拿到国产芯片MCU--兆易创新的评估板(GD32350R)。板载资源如下: 硬件描述芯片型号GD32F350R8T6CPUARM Cortex M4主频108M片内SRAM16K片内FLASH64K下载器GD-Link 拿到这个板子,首先肯定是去看看RT-THREAD是否已经包含这个BSP了,答案:没有这个GD32F350系列的BSP。那必须把他移植个RTT,然后PR一个BSP上去才
Rice加饭
2022/05/10
1.4K0
教你动手移植RT-Thread到国产MCU
RT-Thread 如何移植RTT到stm32《Rice RT-Thread 学习开发》
接触RT-Thread也是一次偶然的机会,之前认识了一群网友,他们都是深圳的,然后我们这群网友本来打算去参加RTT的一个比赛,所以就约出来交流,我对RTT一脸懵逼,虽然后面我没有加入去参加比赛,但是那天听他们说完,我很兴奋,打算自己也来搞一下,移植一下这个系统,这个系统是开源的,所以你想怎么搞就怎么搞。
Rice加饭
2022/05/09
1.4K0
RT-Thread 如何移植RTT到stm32《Rice RT-Thread 学习开发》
【超详细教程】移植RT-Thread nano,并基于 nano 添加 FinSH/shell
背景:移植RT-Thread nano,并基于 nano 添加 FinSH/shell
全栈程序员站长
2022/08/31
3.3K0
【超详细教程】移植RT-Thread nano,并基于 nano 添加 FinSH/shell
【STM32H7教程】第6章 STM32H7工程模板建立(IAR8)
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第6章   STM32H7工程模板建立(IAR8) 本章教程为大
Simon223
2019/04/23
1.1K0
【STM32H7教程】第6章   STM32H7工程模板建立(IAR8)
在RT-Thread的ART-PI平台,进行图片识别
摘要 最近在完成2020年没有完成的一个DIY项目,去年年底整个人有点泄气,导致一直搁置的。现在重新把他做好 因为项目DIY项目中想引入图片识别,但是我的DIY作品不方便使用烧录等,所以我想用ART-PI来进行调试测试。 这个功能取决于强大的RT-THREAD软件包,只需要勾勾选选,就可以实现了。 图片识别实现 开发环境: - 平台:rt-thread的ART-PI。 - 软件包:webclient-v2.1.2,cjson-v1.0.2,mbedtls-v2.7.10。 - 图片识别平台:百度云平台。
Rice加饭
2022/05/10
3820
在RT-Thread的ART-PI平台,进行图片识别
【STM32H7教程】第56章 STM32H7的DMA2D应用之刷色块,位图和Alpha混合
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第56章       STM32H7的DMA2D应用之刷色块,位图和A
Simon223
2020/02/24
1.4K0
【STM32H7教程】第56章  STM32H7的DMA2D应用之刷色块,位图和Alpha混合
【STM32H7】第5章 RL-USB协议栈移植(MDK AC6)
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710 第5章 RL-USB协议栈移植(MDK AC6) 本章
Simon223
2021/03/02
5710
【STM32H7】第5章   RL-USB协议栈移植(MDK AC6)
STM32CubeMX | 41-使用LTDC驱动TFT-LCD屏幕(RGB屏)
本篇详细的记录了如何使用STM32CubeMX配置 STM32F767IGT6 的 LTDC 外设驱动 TFT-LCD (RGB)屏幕。
Mculover666
2021/07/23
14K1
STM32CubeMX | 41-使用LTDC驱动TFT-LCD屏幕(RGB屏)
基于RT-Thread Studio 和小熊派 实现智慧农业
摘要:如何从零开发一个“智慧农业”案例?小伙伴们有福了,孙教授手把手的带大家基于小熊派+RT-Thread开发一个智慧农业案例。
杨源鑫
2021/07/07
1.6K0
基于RT-Thread Studio 和小熊派 实现智慧农业
STM32CubeMX6.0 + HAL + LittleVGL7.6 等学习[最全附工程源码]
https://sxf1024.lanzoui.com/b09rf2dwj 密码:bgvi
小锋学长生活大爆炸
2020/10/26
2.6K0
STM32CubeMX6.0 + HAL + LittleVGL7.6 等学习[最全附工程源码]
RTT 是如何管理和构建工程的?
rtthread 是一个功能强大,组件丰富的物联网操作系统。它相比于其他的 RTOS 的一个主要区别之一,也就是它不仅仅是一个实时内核,还具备丰富的中间层组件。那对于 rtt 来讲,它又是如何管理和构建工程的呢?下面笔者将从一个工程的目录结构开始来进行阐述。
wenzid
2021/03/04
1.4K0
RTT 是如何管理和构建工程的?
ART-PI PWM舵机使用(RT-Studio平台)
雷德斯 and枕头们,小飞哥好久没更新文章啦,最近实在是太忙啦,大家久等啦,这次是一个小伙伴想学习下舵机的使用,小飞哥立马到淘宝淘了一款,安排上,废话不多说,来干货,干就完事了!
用户8913398
2021/08/16
6030
ART-PI PWM舵机使用(RT-Studio平台)
推荐阅读
相关推荐
RTThread的TouchGFX软件包使用说明
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档