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

【STM32H750-DK 车辆仪表】1.灯光控制UI

[复制链接]
jundao721 发布时间:2025-12-7 19:46
1 y; Y, M% s+ y0 d% a0 g
       收到板卡有一段时间了,现在才来补,那就多写一些吧。 4 W  [: `% L2 x9 o7 Z5 N5 E& T
      ST板卡的UI设计还是得使用本家的软件TouchGFX designer。当前使用的是4.26版本,使用较新的版本,这样能够更好的设计想要的UI。
! ~! M( }" h4 t5 J, S  L    这次是申请设计一款车辆仪表的UI,并完成与硬件的交互。那就先从灯光开始。
2 T5 j9 f: j. {) B- q    初始界面如图1所示:- F3 p! `- \4 ~
1-1.png 4 W" r# }: e. X% |! ~
图1
+ I' o) a- ]; F. Z+ H
8 |! S9 h+ e6 q这里需要两张灯光图片,一张是明亮的开灯效果,一张是灰暗的关灯效果。通过UI的toggle button 按键来完成开关切换。+ W+ l: I3 k) _( Z& D  |
首先在背景图中增加image 控件,在image 的属性中将图贴进去。如图2所示:
) h3 H. u' j& {6 C 1-2.png : X6 [0 y, X+ r: j7 d; E% s. ]- n
图28 A! Y; \: h$ _" Z
- v; v  F" l* s2 b5 Z4 u5 P, A! u% c
增加togglebutton 按键控件,在属性中选择,on/off的效果图,如图3所示:
: i: a" O/ I; k0 E* l 1-3.png 6 b4 E7 Z8 S# Z1 Z& D
图39 ^: I# |) x$ [9 k8 N+ }# L+ C
: T" u1 L) i' M8 p7 z  ?
摆放好界面后,在右上角的交互interaction中增加交互效果,设置如图4所示:0 t  D7 m7 d& q& {
1-4.png
  V7 f6 X) n5 Q3 E2 C8 T图4
1 D8 M5 m% f( e) R1 n) o  Q
, M: G2 p$ |( F就是在项目中增加了按键函数togglebtnled。
1 m9 ^/ y( S5 x; _( s. u# t. S( b界面部分基本就完成了,然后使用VScode 打开项目中的TouchGFX文件夹,所有的UI程序修改都在这个文件夹中。9 T' T& w2 X+ h1 b
8 N0 B5 ?- V# i
  q' K+ s$ |; O' Z$ r# Y! y( k7 x& E2 o
在ScreeView1.hpp 中增加按键控制函数,这个函数可以在base.cpp 中看到。' l3 c# x: A/ g  c
如下所示:; P- c/ j. I% ]0 c) m2 Z
  1. virtual void ToggleBtnLed();
复制代码
5 |% j  M' L2 q
, Q5 m- G1 B* U1 F
然后在ScreeView1.cpp 中编写函数实现功能,如下所示:" k% _  f4 i, O
  1. if (toggleButton1.getState())
    4 b1 X7 ]! o: H: [: H- |0 V# C1 A% G
  2.     {! g* x" y# K- c$ C* X4 `0 B
  3.         // Turn on LED
    & }' s2 S2 `4 ^# K) Q
  4.         image5.setVisible(true);  // LED ON image
    + r. I, V% Z+ D4 ~2 ]4 F. Z
  5.         image4.setVisible(false); // LED OFF image5 ]1 w; k  |7 Y! y6 e
  6.         image2.setVisible(false);  // Yellow pear$ I! W3 I( t% P5 u) B4 N1 h) s7 w
  7.         image3.setVisible(true); // White pear6 N6 ^- `) |9 R2 V
  8.     }
    3 M, B: z+ U' f7 e+ j
  9.     else: G: a. T6 o& L/ B, o* ^
  10.     {
    % ]/ k! E6 _/ x
  11.         // Turn off LED& E* y4 @' s% V
  12.         image5.setVisible(false); // LED ON image
    ( L% h6 a) P+ H7 A5 `# P! I7 S/ J
  13.         image4.setVisible(true);  // LED OFF image
    + V( r* |* h5 Z7 T! J, F
  14.         image2.setVisible(true); // Yellow pear1 W. e8 h- y" Q. q+ q
  15.         image3.setVisible(false);  // White pear
    : o! O/ a; s, w2 a4 a# i
  16.     }% \. ]; _9 C# d
  17.     image2.invalidate();
    # V2 [0 l# d  t
  18.     image3.invalidate();
    % e2 ?, S$ R$ x% e. l
  19.     image4.invalidate();2 q6 X. [4 b+ U, I4 m
  20.     image5.invalidate();
复制代码

7 q4 L/ f8 x( q) O* o5 _9 `, r
+ C4 Z, e" F. W* ]2 `% g  Y* c& }7 S没什么错误就保存文件。回到UI的界面中,点击generate code按钮,生成code,然后点击仿真按钮,看一下效果。最后点击右下角的programe and run target按钮,将# K; P, r. B, j8 n+ X& D: X
程序下载到板卡中。如果有错误的话,UI下面的message 界面会提示。 实际控制效果如图5所示:
$ z2 N6 y0 x& r4 m 1-5.gif
2 Q+ A6 s; S* Y! B2 Y图5
5 A2 J* v  h# u1 ~
赞 收藏 评论0 发布时间:2025-12-7 19:46

举报

0个回答

所属标签

相似技术帖

官网相关资源

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