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

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

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

4 G: i/ g' |! \       收到板卡有一段时间了,现在才来补,那就多写一些吧。
( H+ X  b& Z4 H) T$ e, k      ST板卡的UI设计还是得使用本家的软件TouchGFX designer。当前使用的是4.26版本,使用较新的版本,这样能够更好的设计想要的UI。
9 i( l; i2 p5 O  e' c2 i    这次是申请设计一款车辆仪表的UI,并完成与硬件的交互。那就先从灯光开始。  j3 V1 t8 {! J. `) E* W
    初始界面如图1所示:
8 F' S* Y! E+ l- n8 d6 t 1-1.png ' x* d7 B- Y2 g0 r9 _
图13 b% H% \4 x( {$ y
4 Y1 m4 g. q4 h% f- z( p; n1 ~  G
这里需要两张灯光图片,一张是明亮的开灯效果,一张是灰暗的关灯效果。通过UI的toggle button 按键来完成开关切换。. f/ y6 l* _; l3 a& i1 g
首先在背景图中增加image 控件,在image 的属性中将图贴进去。如图2所示:* D, e( O: w2 I7 d) w" G
1-2.png
7 w7 W* |# |$ ^! Y图2
5 Q" k: J- m+ x' |$ `. M, N3 m" N, @# \; O) `9 K
增加togglebutton 按键控件,在属性中选择,on/off的效果图,如图3所示:
; G( Q# b. x. D+ c 1-3.png $ `4 a3 a) `7 R! P
图3# @3 J' y, W, }" N: D5 t
1 l0 _9 p% f4 {7 ]8 t' @5 Z
摆放好界面后,在右上角的交互interaction中增加交互效果,设置如图4所示:; y% g5 W5 O! S, j" Y. Z% J
1-4.png
6 y# B: J8 F: H( o图4
4 r! t0 w( `5 l0 F" W. z* V" c
& Z- T' j+ K+ U" D0 k# R; Z$ U就是在项目中增加了按键函数togglebtnled。2 g* h; N' T# d0 x
界面部分基本就完成了,然后使用VScode 打开项目中的TouchGFX文件夹,所有的UI程序修改都在这个文件夹中。
  }0 [  c! M# s  E6 o8 U7 s4 C9 A' E3 }  n
4 v2 H8 y7 H0 r, o
在ScreeView1.hpp 中增加按键控制函数,这个函数可以在base.cpp 中看到。1 m) p+ M& O+ K! V( U( w
如下所示:) _, M1 }" {) u+ g* f& c9 C9 C
  1. virtual void ToggleBtnLed();
复制代码
/ b/ B( C! @, U1 @' f+ g% K
9 F7 m" ^' F# n3 e8 ?+ e, [
然后在ScreeView1.cpp 中编写函数实现功能,如下所示:9 I$ L' @0 v- _- N% j! _
  1. if (toggleButton1.getState())
    1 v. G* y; B) z( L, j) k
  2.     {
    ' Z* y) u2 j# C. l4 H
  3.         // Turn on LED
    3 d/ `8 Q: C6 C
  4.         image5.setVisible(true);  // LED ON image- Y+ s! A- S& h) Y  E9 ]
  5.         image4.setVisible(false); // LED OFF image" n2 ^, y# [0 J" j! [, {% [' S% U
  6.         image2.setVisible(false);  // Yellow pear
    ( ^  `) h8 g, b  O* a8 P. P
  7.         image3.setVisible(true); // White pear8 Y/ b/ K5 x. }9 s: Z, \& x8 U, v/ @
  8.     }
    2 T+ h. n# P! G, X- ^
  9.     else
    ( e+ G& w  P1 G) ^* ]4 g
  10.     {6 O7 W3 Y! Z0 T* M8 M; H: f
  11.         // Turn off LED
    7 o3 l; C3 k; J% z8 ^6 ]2 a
  12.         image5.setVisible(false); // LED ON image6 x6 n) U; s) w
  13.         image4.setVisible(true);  // LED OFF image
    # w: K; N! o4 }; ?
  14.         image2.setVisible(true); // Yellow pear. i+ t% D( ?# \2 c
  15.         image3.setVisible(false);  // White pear3 N8 P0 E5 M! J. @
  16.     }
    % r+ H6 E6 \- s2 C' ]
  17.     image2.invalidate();. k: J! @* C3 h0 |7 H. N$ Z5 K
  18.     image3.invalidate();
    * |! j$ o! V4 t3 \6 {& V. V" x
  19.     image4.invalidate();! W* h7 R9 s2 q! Q
  20.     image5.invalidate();
复制代码

" _" D) h$ s3 r
* [& s( B' f  `没什么错误就保存文件。回到UI的界面中,点击generate code按钮,生成code,然后点击仿真按钮,看一下效果。最后点击右下角的programe and run target按钮,将
% l4 c# w, g* U程序下载到板卡中。如果有错误的话,UI下面的message 界面会提示。 实际控制效果如图5所示:
2 L: [% l4 C/ ^/ [4 M 1-5.gif
$ a9 O8 j5 X5 g+ R图5  I/ ]4 S0 U$ }9 |$ y
赞 收藏 评论0 发布时间:2025-12-7 19:46

举报

0个回答

所属标签

相似技术帖

官网相关资源

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