STMCU小助手
发布时间:2023-2-2 16:55
|
ST专家点评 从这个评测贴中我们可以看到这位同学给我们展示了如何使用STM32H750+TouchGFX开发平台快速开发一个GUI产品-无线测温集中器。2 {& Q8 f6 o0 P; A( U" }. g" [从设计思路角度来看:这位同学进行设计前,首先使用思维导图工具对应用的需求进行模块化梳理,这个设计思路是非常推荐的。" }1 ^* Q/ z2 i ; S* T! o7 S$ T2 X7 |' ~ 一方面有利于进行UI界面规划和设计,另一方面有助于通过TouchGFX提供的MVP机制对UI和后端数据处理进行分离,可以分开调试。# f; V* ]& I* I( ]/ s ! l5 q, f# [; P% f5 p1 h 这位同学也提到,由于UI image/font资源多的时候,下载板卡会比较慢,因此UI开发可以先使用TouchGFX Designer的模拟器进行调试,当后端数据处理部分调试好后然后再与UI部分通过MVP集成。 " G3 t3 u3 J: q6 B+ g5 p" E 从数据处理的角度看:从功能实现的角度来看无线测温集中器的应用功能UI部分的实现比较完整,交互也比较友好。该设计包含了多个界面(主界面/实时曲线/历史曲线/设备配置/时钟显示/关于),这些界面的实现和界面间切换以及数据的展示和读取。 % J1 W, _! `( p! {" E' Z 从整体设计来看:看起来复杂的GUI+数据处理应用,由于TouchGFX Designer提供了很多常用的控件,如:文本显示/图片显示/容器/界面切换/动态,静态曲线/时钟等控件,就非常容易的通过所见即所得+拖拽的方式进行快速设计,通过交互配置就可以实现页面切换,然后通过MVP进行数据展示,是一个很好的参考设计。1 } [) U1 A, a2 P 4 G- l! _4 r |- N. x 一、概述 此项目实际应用,并非使用STM32H750B芯片,显示屏也是7寸的RGB屏,所以,此项目只是使用此开发板实现GUI的功能,后期将GUI移植到具体的项目中。 . y; D6 m* x' t8 R7 Q- f% g% |7 B Y 整个项目的大体框架如下:
2 l6 W+ ?/ k& Z4 M; _+ l n( B$ c 二、硬件 GUI运行硬件平台为STM32H750B-DK开发板。8 U3 U9 a2 ? I1 K M- l) x2 P& @4 D% ]" m# G) _% Z8 e# z 7 B3 U# C) k9 m _' _: L9 Y5 b 硬件层的程序最终是基于我司的平台,所以,此次测评主要集中在GUI上。很多底层的程序移植过来也用不上,而且时间比较长,逻辑也比较复杂。 连接上随开始板送的传感器与一个RTC模块。
三、软件 于是,本次的UI就采用仿win10桌面的一种方式。要美观的话还是要大量的贴图,所以先用一些简单的图标进行代替。“桌面”的整体布局使用自定义控件的方式,把任务栏与开始菜单先做成自定义容器,在每个界面中添加这个容器。再实现每个界面 不同的功能。界面设计,大部分工作是使用TouchGFX 4.19.1 Designer 完成的,一些逻辑,要当特定的源文件中修改代码与添加相应的函数实现的。# n4 ` d: S6 n# F7 s% M) l 任务栏可以打开开始菜单,右侧为显示桌面功能。开始菜单中的几个图标,可以进行不同的screen之间的切换。每个screen中都添加这个任务栏的容器,这样每个sreen之间都可以自由的切换了。$ ^3 p0 u+ @4 x: ~" m) k
桌面,显示温湿度传感器的数据,显示无线信号强度,显示报警状态,有消音功能。如果没有有效的无线信号,信号强度图标会从低到高闪烁,以示在搜索信号。, ?& I/ X/ ? S2 a# ? 0 Z0 u& s% c: ^. a . Q" N" C7 d& ~1 [& |% [ G9 ?" N
/ O& h2 B& }5 W, H8 t4 s/ j3 x( _( ] ) L7 L& C& d+ x9 l, ?4 Q1 |
( q; b/ l1 D1 z
实时动态显示功能,这里分不同的线路,每条线路分为A,B,C三相,使用不同的颜色区分。中间增加一个滚轮,用于切换不同的线路号。这里显示的应该是温度曲线,方便调试,增加了可修改周期的正弦曲线,线路号越大,周期越大。无线测温一般测量电缆接头或是断路器的位置,所以,分三相显示。 / h/ O4 y2 v% F; R( c
历史记录可显示报警信息发生时前后的温度记录,也是通过滚轮来切换的。这里的数据,是暂时的,实际使用时,要先读取存储介质上的数据再显示的。4 R5 F+ K# `- J& D( C& ` S
配置界面,可配置报警开关,与报警温度的设置。温度设置通过独立设计的一个虚拟键盘来输入。 * `' I { e. A. w
时钟界面用一个模拟时钟,通过读取RTC的数据来显示时间。
报警记录,通过方向键来切换要显示的报警信息。 $ } H$ R" ]( H
4 \* _( e$ o! `- I, }, D3 E 网络界面,用于配置网络地址,每一个数字都是通过滑轮的方式进行修改的。$ d. _ b6 Y) v; |6 Y5 c6 i) J9 l* ]! P. @, Q
“关于”界面,显示一些基本的信息。
右上角有一根灯绳,只要点一下,会下拉一个界面。# h/ k( M, C# M& @) P
四、总结 经过一段时间的开发设计,对TouchGFX的架构有了一个比较深入的掌握,对于后续项目产品中使用TouchGFX奠定了基础。. t, ^9 d, E O. J5 r2 ]1 m- M( N* J; x% k 使用TouchGFX Designer进行界面的设计,大大的减少了设计所用的时间,完整的PC仿真方案,不用每次烧写调度,进一步减少了开发周期。GUI的设计,大部分使用TouchGFX Designer就可以完成,TouchGFX Designer自带的一些动画、关联功能,不需要大量的美工,就可以做出比较完善、美观的UI。几乎适应于任何应用项目中。 来源:STM32论坛网友jinyi7016 0 Y& d# f1 {+ S: E/ d0 v9 o# v$ [% L% R' n |
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
【STM32H735G-DK测评】ADC3+TIMER1+DMA 采样模拟信号
【STM32H735DK测评】Ethernet+lwip DHCP获取IP地址
STM32H743基于CubeMx5.0配置手册
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
微信公众号
手机版