你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32的TouchGFX从旧版本更新到新版本的方法

[复制链接]
STMCU小助手 发布时间:2023-11-4 14:23
01引言
8 w* A& W  b- ]' c随着 TouchGFX 不断进行软件版本更新,其提供的功能也越来越丰富,有些新的功能只有更新的版本才有,所以很多时候会面临将旧版本的 TouchGFX 迁移到更新版本的问题。在创建 TouchGFX 应用时,生成的.touchgfx 工程文件版本与用来创建应用的TouchGFX Designer 版本相同,TouchGFX Designer 在设计上是向后兼容的,您可以使用更新版本的软件来开发您的应用。在大多数情况下,仅需一个极简单的流程便可使旧版本应用能够工作在 TouchGFX 新版本上。
3 o( B( P, ?/ N" Q- q: b. @3 J
# `/ D3 r( p, A8 Y# T1 j! F本文档提供了如何从较旧版本的 TouchGFX 升级到较新版本的教程,总结可能发生的常见问题及其各自的解决方案。本文档可能并不详尽,可能在将来进行更新,但旨在解决用户在版本更新时遇到的大多数问题,以确保顺利过渡到最新版本的 TouchGFX,从而享受最新版本的 TouchGFX 功能。
+ ?- |$ v9 B8 C8 m
5 h8 }3 [/ t8 b02TouchGFX软件升级安装* B& m, F9 L. B) d, ^+ p
X-CUBE-TOUCHGFX 是 STM32Cube 生态系统的一个软件包,它包含以下组件:TouchGFX Designer,TouchGFX Generator 和 TouchGFX Engine,其中 TouchGFX Designer 是用来构建 UI 的 GUI 构建工具,TouchGFX Generator 是通过 STM32CubeMX来生成用户 TouchGFX HAL 的工具,TouchGFX Engine 是驱动 UI 应用程序的TouchGFX C++框架。软件升级所涉及到的主要是 STM32CubeMX 中 TouchGFX Generator 插件升级安装和 TouchGFX Designer 升级安装。2 \# h: R# h- ?' p% I  a! z
! J% s; z) t4 q7 n
2.1. 安装新版本 TouchGFX Generator- n5 ^; @. U0 O+ x( D
打开 STM32CubeMX 软件,点击菜单栏“Help”下的“Manage Embedded Software Package”,或者按键 ALT + U,进入到软件包列表。
7 t" v3 s9 M( b0 W' I1 \% E( G# W( d4 y' b8 t2 L0 B

1 X  p* c: h' F* x7 w; e
微信图片_20231104141335.png
图1.点击菜单栏“Help”下的“Manage Embedded Software Package”

) e! G; o5 d; {3 ^/ ~- G" x进入软件包列表后,单击“Refresh”以获取有效的可更新的软件包列表,此操作需保证电脑网络连接正常。
! z$ H5 [5 u/ i4 ?( p' D8 U; ]6 O; }( s! P: i
+ x( K" l4 R0 W; p: E6 M

3 H7 a9 ^! Y/ J  Z- }: Y
微信图片_20231104141332.png
图2.STM32CubeMX 中的软件包列表

7 J4 r/ S) w; i: M7 L$ ^然后转到“STMicroelectronics”选项卡, 滚动直至找到“X-CUBE-TOUCHGFX”,然后展开节点,选中最新版本“TouchGFX Generator 4.20”复选框,然后点击“Install ”,此时将下载软件包并显示许可协议。) j: p# ^' l; ?: t: q) `: `1 H
. M9 V6 _+ z- c" X% |1 K% u
* G7 g# Q( f4 l
/ E- I) W, T! z( B" U/ i

) }; L+ }5 E" j! E: u  k8 W7 {
微信图片_20231104141329.png
图3.安装好 TouchGFX Generator 4.20 后的界面
* e1 w: g; o4 ?# C
2.2. 安装新版本 TouchGFX Designer7 P0 p# T  t5 B3 p' _
在类似路径) J8 I/ U2 H) t* @8 j
C:\Users\\STM32Cube\Repository\Packs\STMicroelectronics\X-CUBETOUCHGFX\4.20.0\Utilities\PC_Software\TouchGFXDesigner 找到 TouchGFX.msi 安装程序,双击 TouchGFX.msi 文件可打开安装程序,按照说明完成安装过程。路径根据您的安装路径略有不同。
3 B3 q+ t! P  j  G8 q( e( q* a, w+ i) @2 g
) l, T) M. v2 g0 h
微信图片_20231104141326.png
图4.开始安装 TouchGFX Designer 4.20

# }! c  H5 ~+ B% q7 r+ J
7 N( F4 B' _  p1 U  j% |
: t& |9 Y5 a/ [+ Z
03工程项目由旧版本迁移到新版本TouchGFX! o+ X8 y2 F: I9 p
安装好新版本的 TouchGFX 软件后,下面介绍将您的工程代码迁移至新版本TouchGFX 的方法。一个完整的软件工程升级到新版本包括 STM32CubeMX 中TouchGFX Generator 配置升级并生成代码和使用新版本 TouchGFXDesigner 打开文件并生成代码。
" n  @- g+ s- Q6 r1 p
7 @5 `# F, g- s9 |3.1. STM32CubeMX 中 TouchGFX Generator 配置升级2 T! j4 _# }( x$ ]$ j  @! o
3.1.1. 使用最新版本 STM32CubeMX 打开旧版本的.ioc 文件
% v, z+ `6 l& l. T使用最新版本的 STM32CubeMX 打开旧版本的.ioc 文件,CubeMX 会弹出类似如下的窗口。在项目加载时:STM32CubeMX 会检测该项目是否使用该工具的旧版本创建,如果是,则会建议用户迁移,以使用最新的 STM32CubeMX 数据库和 STM32Cube 固件版本,或者继续。点击继续将保持用于创建项目的数据库不变。如果计算机上没有所需的数据库版本,则会自动下载该版本。升级到 STM32CubeMX 新版本时,请确保在加载新项目之前始终备份项目(特别是当项目包含用户代码时)。
# M2 q) N6 _! n8 @/ n% V( S
! A' ~% h3 U& @- [3 `1 g

; ~, ^" U! e/ ^
微信图片_20231104141323.png
图5.STM32CubeMX 加载工程

+ A, ]; d4 A7 s
微信图片_20231104141250.png
图6.点击 Migrate 进行工程迁移

( G8 m8 ]! c0 w1 g  r; n' A2 J. f3 p3.1.2. 在 STM32CubeMX 中更改 TouchGFX Generator 版本8 m/ R5 {, ~/ Z
在 STM32CubeMX 软件中,点击 STMicroelectronics.X-CUBE-TOUCHGFX.4.20.0 进入 TouchGFX Generator 配置界面。在开始升级软件版本时,请首先截图保留以下配置,以方便后面对照更新配置。
8 J# i7 p1 }. A9 p. T8 w/ |4 U; n8 {6 u2 o

: s" p, B4 t( o$ a
微信图片_20231104141247.png
图7.截图保留原 TouchGFX Generator 配置

& Q: }' \- f! G+ _" Z( ^; `点击 Software packs 选择 Select Components ,在部件选择窗口,取消选择旧版本TouchGFX Generator,然后再选择最新版本的 TochGFX 4.20(或者将来更新版本)。当TouchGFX 4.20 被选中后,需要通过选择 TouchGFX Generator 来应用它。
( m3 J+ X( D8 k7 L! Q% |8 U  _& U, }) @5 U: F
微信图片_20231104141244.png
图8.更改 STM32CubeMX 中 TouchGFX Generator 版本的步骤
4 b: u4 O* g, }  P# p' t. V/ ]" A" y
3.1.3. 更新 TouchGFX Generator 配置参数5 J4 J7 X7 q7 e( D/ Q) ]! r
回到 TouchGFX Generator 配置界面,我们使用以前版本图 7 中的参数配置新的TouchGFX Generator,最后点击生成代码。
; s/ Q4 a# ~' f! ~- U, {) K. E1 ?* ]3 Q$ o7 ^" Q- w1 y
8 T. G3 k1 F$ [  f
  W5 F3 z3 c; d9 X: e' e3 \
微信图片_20231104141240.png
图9. 更新 TouchGFX 配置和生成代码
: ?/ P4 Y0 F# ~) y% D" J$ D. ?
忽略以下 warning, 点击 Yes。" B. F6 b/ \$ X% E

/ V" m2 H! t7 b4 b& |# m
微信图片_20231104141237.png

: }3 p9 h7 y, d. F2 T) s' @3.2. 使用新版本 TouchGFX Designer 打开 .touchgfx 文件生成代码! D  X! @! K( Q( ^& K
右键单击 .touchgfx.part 文件,然后选择最新的 TouchGFX Designer 打开,您将收到一个弹出窗口,要求您确认更新,请点击“是”。
# t% x( W0 u$ O0 p/ v2 c1 x: P- d5 c+ ~9 |# j1 T" V4 [2 r
然后,您需要先删除 build 和 generated 文件夹,再重新生成代码。执行此操作后,需要在 STM32CubeMX 中再次生成代码。此时可以使用您的 IDE 来编译项目,并查看是否有任何错误。4 ]6 l3 \/ I5 x: M2 F8 s9 m

. T) M0 r/ F: \2 c
微信图片_20231104141234.png
7 d4 L6 q5 `5 j
微信图片_20231104141231.png
图11. 选择最新的 TouchGFX Designer 打开.touchgfx 文件

; `2 e" r3 {- N

7 j3 O  V9 H( v! g# O. p
# V# x& s0 }# [+ F* M- n. Y3 ~04软件升级遇到的常见问题3 J& d1 J" `' X; t
在软件版本升级之前一定要备份自己的软件工程,这是十分重要的。在将旧版本的TouchGFX 工程迁移到新版本的过程中,有以下事项需要检查确认:
% {5 \2 G6 Q9 j8 F. f; p& ?(1)使用新版本 TouchGFX Designer 生成代码之前,是否在 STM32CubeMX 中使用相同版本的 TouchGFX Generator 并生成代码?如果您使用 TouchGFX 4.20,则需要在STM32CubeMX 中使用 TouchGFX Generator 4.20 和 TouchGFX Designer 4.20, 版本要保持一致。STM32CubeMX 的版本要选择支持 TouchGFX Generator 最新版本的版本,例如,要使用 TouchGFX Generator 4.20,那么 STM32CubeMX 的版本要最低为 6.5。
$ `* [( S- M+ D3 X5 q5 ?4 ^4 `
1 k8 e. a4 C) B2 @. J, v' Z) T
4 G8 }. J9 \6 E# T' w4 _
(2)检查代码中是否缺少#include 行。使用某些功能时,保证始终在每个文件中包含正确的路径。
" d7 @6 E4 @7 {3 S% L' C2 g  B" s% \6 ^5 a

' e- X2 {! }# e1 U" t/ v4 i(3)检查您使用的函数是否已被弃用,或者是否更改了名称。您可以参考帮助文档中的更新日志页面。
, ^3 {; b5 q3 a0 ~! `: e
: b# X% C: A; T% Q$ a1 H" h& n# ]

5 Z4 C0 F2 Q. b(4)建议使用 STM32CubeMX 单机应用程序,而不要使用 STM32CubeIDE 中的STM32CubeMX。因为在 STM32CubeIDE 使用 STM32CubeMX 进行升级会遇到更多的问题。
1 w: o) {7 ]; K! V8 f* T# e; d
0 Y3 F8 V) Q) h1 D, r7 Y
  q4 |$ ]+ y9 b: W2 e7 |
(5)升级结束后,在重新编译代码之前,Clean 你的工程和去除之前编译的目标文件。 6 B& b; c1 l2 @! _4 j

6 t. r( @, Y* i! Z
" A2 Q, ^; U* \9 t
(7)在迁移之前,请确保您没有用户代码部分之外的代码,否则您的代码将在代码生成后被删除。
2 K3 ^* Z8 |( B+ _& x! Z1 ]9 U8 C
  j6 \- r( b; {8 O

8 g: J  @4 q: z  J/ T(8)TouchGFX/Target 文件夹将在迁移后被修改,因此您可能需要将以前的代码复制粘贴到新创建的文件中。
$ t9 |" \( o2 x; a& P" ?# ^" j! S
4 _* p8 U: ^2 k! {% C2 O9 ?+ z
( |, T) B# g2 f4 `
(9)TouchGFX 设计团队已经列出了 TouchGFX 版本中已知存在的问题,以及可能的解决方法。
+ V1 a' j$ _. `% q  M; b9 B0 ^! k! L8 i; C7 |- ?
8 e" S- C9 ^2 m; F; F  P( m$ q
转载自: STM32单片机 * H8 d7 P" }$ w+ q
2 ^$ K( g1 T! }7 |! t( m* E
如有侵权请联系删除
( y3 S. g- M( ~  R# ?$ _( V3 [  w4 H$ [# m6 u

% _+ V: o  h4 ]& h1 I9 H
赞 收藏 评论0 发布时间:2023-11-4 14:23

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版