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

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

[复制链接]
STMCU小助手 发布时间:2023-11-4 14:23
01引言
) Y1 k8 m2 B6 S随着 TouchGFX 不断进行软件版本更新,其提供的功能也越来越丰富,有些新的功能只有更新的版本才有,所以很多时候会面临将旧版本的 TouchGFX 迁移到更新版本的问题。在创建 TouchGFX 应用时,生成的.touchgfx 工程文件版本与用来创建应用的TouchGFX Designer 版本相同,TouchGFX Designer 在设计上是向后兼容的,您可以使用更新版本的软件来开发您的应用。在大多数情况下,仅需一个极简单的流程便可使旧版本应用能够工作在 TouchGFX 新版本上。 * \, j- {# p9 [% `. L7 |4 G

& z( e& I5 Z9 ]6 K' K; R2 ]本文档提供了如何从较旧版本的 TouchGFX 升级到较新版本的教程,总结可能发生的常见问题及其各自的解决方案。本文档可能并不详尽,可能在将来进行更新,但旨在解决用户在版本更新时遇到的大多数问题,以确保顺利过渡到最新版本的 TouchGFX,从而享受最新版本的 TouchGFX 功能。
' q, U/ b) ^& D3 v& L6 x' \
' \) R' Y. C+ W. `) L: P02TouchGFX软件升级安装" h8 u. A3 u' n9 s' [  ?
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 升级安装。
) r6 a/ ?2 a/ a+ z5 y6 D* L: A/ F; l
2.1. 安装新版本 TouchGFX Generator; Y- D! M$ D& c9 ]" h
打开 STM32CubeMX 软件,点击菜单栏“Help”下的“Manage Embedded Software Package”,或者按键 ALT + U,进入到软件包列表。
' [% L! Z; ~6 E: ~
7 {: b2 G  ~% K& @

; q  z& @0 ]. ]) Y9 a( }$ u
微信图片_20231104141335.png
图1.点击菜单栏“Help”下的“Manage Embedded Software Package”

3 W1 q3 c2 Y: D* {进入软件包列表后,单击“Refresh”以获取有效的可更新的软件包列表,此操作需保证电脑网络连接正常。
$ W& [' \* U: s/ }# T8 [
) ?' w# N$ M) @
( j: Y7 ^# g4 f4 S3 Z- H5 X

" f, k1 t% v8 ^  g8 n/ H6 ~- l
微信图片_20231104141332.png
图2.STM32CubeMX 中的软件包列表
' q+ f1 h( K% x& L/ ?6 O! f( z) u
然后转到“STMicroelectronics”选项卡, 滚动直至找到“X-CUBE-TOUCHGFX”,然后展开节点,选中最新版本“TouchGFX Generator 4.20”复选框,然后点击“Install ”,此时将下载软件包并显示许可协议。$ E8 K/ g: n( M  `' a3 L
6 n& s+ B- v* Q4 P3 u: S& Y+ s
! |, O& J7 R* f" P: y  [$ d

1 [/ h; m% K. n7 e! f% E9 B

) Z: O7 L2 B' n3 S! G
微信图片_20231104141329.png
图3.安装好 TouchGFX Generator 4.20 后的界面

) ]1 ]: Z5 K7 U6 A; X2.2. 安装新版本 TouchGFX Designer
" w/ Z; |# u7 k  v0 M/ a在类似路径. `7 F$ R- r/ u0 e, o: c
C:\Users\\STM32Cube\Repository\Packs\STMicroelectronics\X-CUBETOUCHGFX\4.20.0\Utilities\PC_Software\TouchGFXDesigner 找到 TouchGFX.msi 安装程序,双击 TouchGFX.msi 文件可打开安装程序,按照说明完成安装过程。路径根据您的安装路径略有不同。
+ W; g- [6 O2 j; w4 h' w7 c- `9 @( O+ ~& [" q5 V% ^
/ \# h- a0 k2 ]/ I: L
微信图片_20231104141326.png
图4.开始安装 TouchGFX Designer 4.20

6 C5 P( J$ ^  W3 ?" {, O

# H; h' w: H  M7 C, p: k: Y
$ [$ o- I* a) |8 T  T; J03工程项目由旧版本迁移到新版本TouchGFX
/ Q( g: Y' M+ P* w0 f' o' E; N8 ]安装好新版本的 TouchGFX 软件后,下面介绍将您的工程代码迁移至新版本TouchGFX 的方法。一个完整的软件工程升级到新版本包括 STM32CubeMX 中TouchGFX Generator 配置升级并生成代码和使用新版本 TouchGFXDesigner 打开文件并生成代码。( H+ _) j( i  `: r: K
6 @( d) \+ ]% b
3.1. STM32CubeMX 中 TouchGFX Generator 配置升级
3 T( U) N1 y! m8 _) a- g1 H7 t6 ~6 U3.1.1. 使用最新版本 STM32CubeMX 打开旧版本的.ioc 文件- N' l) i) J/ n3 D7 c- Q- R9 ?  n
使用最新版本的 STM32CubeMX 打开旧版本的.ioc 文件,CubeMX 会弹出类似如下的窗口。在项目加载时:STM32CubeMX 会检测该项目是否使用该工具的旧版本创建,如果是,则会建议用户迁移,以使用最新的 STM32CubeMX 数据库和 STM32Cube 固件版本,或者继续。点击继续将保持用于创建项目的数据库不变。如果计算机上没有所需的数据库版本,则会自动下载该版本。升级到 STM32CubeMX 新版本时,请确保在加载新项目之前始终备份项目(特别是当项目包含用户代码时)。- z  s  Z% B  [$ h! r# q2 ]: ?- L  o. P

' I7 m! o( y, H
9 K: h# x" G* ?! [/ r8 g0 t( Q% n% h/ p
微信图片_20231104141323.png
图5.STM32CubeMX 加载工程
7 ?8 q+ Q, P3 r, X* n# T* m# E! j
微信图片_20231104141250.png
图6.点击 Migrate 进行工程迁移

; ^: s! f! ~2 F3.1.2. 在 STM32CubeMX 中更改 TouchGFX Generator 版本
3 j1 X# C$ K# _# B$ b6 f( b( u在 STM32CubeMX 软件中,点击 STMicroelectronics.X-CUBE-TOUCHGFX.4.20.0 进入 TouchGFX Generator 配置界面。在开始升级软件版本时,请首先截图保留以下配置,以方便后面对照更新配置。
9 G$ t! v, I4 q5 g
" @* n; F! a( D8 p: r  l

; R% G/ K( K: J7 d
微信图片_20231104141247.png
图7.截图保留原 TouchGFX Generator 配置

0 j, f  Z) q5 Z  X3 h: ]% U* |% y点击 Software packs 选择 Select Components ,在部件选择窗口,取消选择旧版本TouchGFX Generator,然后再选择最新版本的 TochGFX 4.20(或者将来更新版本)。当TouchGFX 4.20 被选中后,需要通过选择 TouchGFX Generator 来应用它。0 B+ [2 O9 t4 z/ Z
- r& `5 s# f( w4 s4 P
微信图片_20231104141244.png
图8.更改 STM32CubeMX 中 TouchGFX Generator 版本的步骤
  t- p7 S9 A( A9 Q1 x9 \9 O6 q
3.1.3. 更新 TouchGFX Generator 配置参数
0 c$ x9 _- v# k. D$ g回到 TouchGFX Generator 配置界面,我们使用以前版本图 7 中的参数配置新的TouchGFX Generator,最后点击生成代码。
! o5 {0 |, H# `
* N- |+ Y* r5 e  `+ ~8 r! n$ L
4 U5 o- P2 j! A

3 R4 d5 u  K) ^3 j# h% X
微信图片_20231104141240.png
图9. 更新 TouchGFX 配置和生成代码

" Q1 g/ G  F0 e  E1 q5 T' O- W忽略以下 warning, 点击 Yes。, Y; k4 ^5 g1 e* x% y9 T7 x# N
6 n0 M) C: H  B) I+ r: V' I
微信图片_20231104141237.png
1 r, `; X0 N6 [& X6 |( o
3.2. 使用新版本 TouchGFX Designer 打开 .touchgfx 文件生成代码( R$ k9 r4 g! @
右键单击 .touchgfx.part 文件,然后选择最新的 TouchGFX Designer 打开,您将收到一个弹出窗口,要求您确认更新,请点击“是”。 ) g( c, s. e* Z
9 X( @) ]' ^; ~9 u
然后,您需要先删除 build 和 generated 文件夹,再重新生成代码。执行此操作后,需要在 STM32CubeMX 中再次生成代码。此时可以使用您的 IDE 来编译项目,并查看是否有任何错误。) t7 k! C) m* m. A3 u( k3 N

6 @' B/ t% F- ~/ K0 P* n! z7 \
微信图片_20231104141234.png
" B( ^4 R8 F4 \" h4 T8 G4 M
微信图片_20231104141231.png
图11. 选择最新的 TouchGFX Designer 打开.touchgfx 文件

" d6 |& c0 A) v0 y% G; S; I2 F
- B+ w" {  g) `6 s
3 U) A" M+ N( _( @
04软件升级遇到的常见问题/ x. t$ Q7 f0 x- l1 ^' ]) `
在软件版本升级之前一定要备份自己的软件工程,这是十分重要的。在将旧版本的TouchGFX 工程迁移到新版本的过程中,有以下事项需要检查确认:7 s$ M" S, o: ~7 k
(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。2 g0 g1 U+ _$ C/ Z2 a

) ^$ F- ~/ o8 h7 f9 k& r
# [3 G( R6 N2 g  D) W. \
(2)检查代码中是否缺少#include 行。使用某些功能时,保证始终在每个文件中包含正确的路径。$ \) L+ B8 ~/ F* C% ^) ~7 V
& U: C; g+ U$ x+ M8 n- C. x, \# `6 f

) j1 l, \& f1 m) b; O(3)检查您使用的函数是否已被弃用,或者是否更改了名称。您可以参考帮助文档中的更新日志页面。
% Q3 S1 F( ?8 W+ B: T, q+ p% f0 H8 Z* i8 u% U- {# d
6 G( N! w: G, I& Q9 Z' m. i
(4)建议使用 STM32CubeMX 单机应用程序,而不要使用 STM32CubeIDE 中的STM32CubeMX。因为在 STM32CubeIDE 使用 STM32CubeMX 进行升级会遇到更多的问题。 1 S2 b# T! j' ]6 s  N% \; q
# y& a2 S  v) k& \6 }( R" ~  L

: Z" q! X" o: e(5)升级结束后,在重新编译代码之前,Clean 你的工程和去除之前编译的目标文件。
* S1 A3 b2 Y- V7 ^
1 A9 p2 ~$ o% |: f  H
5 m# K+ j6 K* |9 \- r
(7)在迁移之前,请确保您没有用户代码部分之外的代码,否则您的代码将在代码生成后被删除。
  r! D5 r' \& q
, k7 q/ O0 q" x. k1 ^7 o, z; w

; a) Q# d' y" r7 \" X4 ?(8)TouchGFX/Target 文件夹将在迁移后被修改,因此您可能需要将以前的代码复制粘贴到新创建的文件中。8 [& ?9 |8 m# L5 u) }5 p" K

/ O5 |$ K; k' N, j. ?! M2 d

/ h+ o$ G7 z8 T6 O. t5 b(9)TouchGFX 设计团队已经列出了 TouchGFX 版本中已知存在的问题,以及可能的解决方法。
! Z' k; D' R# d' `: s
% w5 W. e: f$ `4 N# W# ?6 |4 D  _
& U" U  C1 j; p# c. t' J
转载自: STM32单片机 # g0 l  T  D. v1 h

( M9 w# [% Q7 \. {; K如有侵权请联系删除( Q6 h4 n4 `! ^( g8 {: z9 M
( i/ p/ D( }) u6 z" v, N6 U
6 N2 _, P  R- R& y3 `, a; Z
收藏 评论0 发布时间:2023-11-4 14:23

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版