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

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

[复制链接]
jundao721 发布时间:2025-12-7 19:46

8 ^# X) S9 p  G2 y3 Q5 [  t0 n' v       收到板卡有一段时间了,现在才来补,那就多写一些吧。
; \) f3 q8 T) q! @& w      ST板卡的UI设计还是得使用本家的软件TouchGFX designer。当前使用的是4.26版本,使用较新的版本,这样能够更好的设计想要的UI。% o: w- d# A3 `/ S% D/ H! l
    这次是申请设计一款车辆仪表的UI,并完成与硬件的交互。那就先从灯光开始。+ X8 X3 u3 H# q/ m2 _/ v* m
    初始界面如图1所示:
$ B2 u: S( q& o$ g3 N7 j: @' Q 1-1.png / o5 g. u8 C% _6 t4 U
图1
& C+ f' `: V. U6 r- W
' x5 N- B! Y# q这里需要两张灯光图片,一张是明亮的开灯效果,一张是灰暗的关灯效果。通过UI的toggle button 按键来完成开关切换。# G8 R, k$ N, q! ~) k+ W6 C- `
首先在背景图中增加image 控件,在image 的属性中将图贴进去。如图2所示:
6 y/ n# T+ _# W4 @6 L2 _4 N. W 1-2.png . `) J4 v; Z- v9 g+ Q+ f( J
图2
% G& ?! ~2 j# P; V
5 m! C7 `" Y0 i; l, A增加togglebutton 按键控件,在属性中选择,on/off的效果图,如图3所示:
8 d; M3 s% U/ k/ q/ {" }: ] 1-3.png
: A7 I# l% M0 h2 _; K8 n& L图3$ e7 y$ Q2 G2 |" X" u) v
) K5 D/ a! p0 A! P, v5 M
摆放好界面后,在右上角的交互interaction中增加交互效果,设置如图4所示:, ~* X0 p$ V- k- o$ i4 M+ {8 ?
1-4.png 2 V3 l/ t& E2 S) V
图4
4 V( l5 P5 Y! e" _# `$ j" f
' ?0 D! R' }9 |  f* _* B就是在项目中增加了按键函数togglebtnled。2 I' {# P! ?6 p3 P& v+ @) q( k, _1 O
界面部分基本就完成了,然后使用VScode 打开项目中的TouchGFX文件夹,所有的UI程序修改都在这个文件夹中。0 b1 f' F7 G+ Y) K4 m  C

8 e7 }; d9 ?7 T' d
: A6 p  j& t5 j9 {# [- Z
在ScreeView1.hpp 中增加按键控制函数,这个函数可以在base.cpp 中看到。; ]* E5 E0 C, D- a- f
如下所示:
( b/ S/ n$ l, ?+ y( T
  1. virtual void ToggleBtnLed();
复制代码

# w( v5 C9 o. B9 e3 N" Y
' G8 t; x! L) d9 @0 w& T2 o然后在ScreeView1.cpp 中编写函数实现功能,如下所示:9 m( \- s4 [5 S
  1. if (toggleButton1.getState())" p3 P- I! ^! N) U2 T  {9 }
  2.     {% y2 z% E) }. k" x( o1 |
  3.         // Turn on LED
    * i$ I  `4 h& a' ]5 l
  4.         image5.setVisible(true);  // LED ON image" a( Q' K" W# J0 `' @
  5.         image4.setVisible(false); // LED OFF image$ `5 E; T& P* a2 T
  6.         image2.setVisible(false);  // Yellow pear
    3 |; ~& K3 U6 R+ N4 f, A
  7.         image3.setVisible(true); // White pear( d+ m4 G5 Z, B# }5 q, N2 g
  8.     }& W; H) @; {- A6 ?1 v4 [! ]
  9.     else
    ; D* k4 q3 S5 V
  10.     {0 H2 L/ D. @; x* }
  11.         // Turn off LED9 w: [& f( _1 t' k1 P2 c0 i
  12.         image5.setVisible(false); // LED ON image
    % c8 o9 ]; G8 b% m- l9 [
  13.         image4.setVisible(true);  // LED OFF image
      |+ c1 g/ j( o
  14.         image2.setVisible(true); // Yellow pear, x! @, A( o. Q0 i4 V' G
  15.         image3.setVisible(false);  // White pear
    1 H  p/ G' I# ^7 X
  16.     }
    0 c2 N- Y6 }+ o8 J( {4 {* T8 C! Q
  17.     image2.invalidate();
    $ {8 e+ I! O. I. Q4 ]$ y1 U, M
  18.     image3.invalidate();
    - u4 Q, [! {. u% U& m# r
  19.     image4.invalidate();
    ) t% }2 R# L+ ^- z0 R; ^
  20.     image5.invalidate();
复制代码

" J+ n. [' V/ d) i* ]9 ~1 K( J' {" g3 y! ^
没什么错误就保存文件。回到UI的界面中,点击generate code按钮,生成code,然后点击仿真按钮,看一下效果。最后点击右下角的programe and run target按钮,将2 `7 M! f! p% O. `  g
程序下载到板卡中。如果有错误的话,UI下面的message 界面会提示。 实际控制效果如图5所示:$ u' G8 r( b/ L
1-5.gif * I  X8 ~1 i, W7 O
图5
* C2 I( h$ v5 }& _% n$ y  a4 d: V# _
赞 收藏 评论0 发布时间:2025-12-7 19:46

举报

0个回答

所属标签

相似技术帖

官网相关资源

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