今天继续进行U599的开发,这次做一个简单的表盘界面。 打开TouchGFX,放置一个背景,放一个analogClock控件。 效果如下,还是非常好看的。 在加一个圆形的遮罩,这样的话显示效果与实际板卡中一致。 点击生成代码,打开vs进行代码开发。 对于钟表控件来说,最重要的就是时间配置,也就是virtual void setTime24Hour(uint8_t hour, uint8_t minute, uint8_t second)函数(这里我配置的是24小时制,如果是12小时制,需要virtual void setTime12Hour(uint8_t hour, uint8_t minute, uint8_t second, bool am)函数) 在了解如何改变时间之后,接下来就是想办法实现定时刷新,TouchGFX提供了一个滴答回调virtual void handleTickEvent (),当前界面每一帧进行刷新的时候都会调用一次这个函数。 下面加入代码魔法。 mainView.hpp
mainView.cpp
在上面的代码中,首先是覆盖实现了虚函数virtual void handleTickEvent(),定义了时分秒变量 因为handleTickEvent()是每一帧都会调用一次,对于模拟或者板卡配置来说,默认为每秒60帧,所以tickCounter计数到60,就代表过去了1秒,之后调用analogClock.setTime24Hour(analogHours, analogMinutes, analogSeconds)控制显示。 跑一下仿真看看 效果不错,但是感觉指针有点生硬,下面我们给他指针加入一点小动画。 回到TouchGFX,对analogClock控件Animation项进行配置(这里配置仅供参考,大家可以根据自己实际效果进行调整) 重新生成代码,回到VS进行仿真 gif图有点失真,不过还是能看出指针回弹动画的,完美。 因为代码都写完了,也不涉及单片机层面开发,直接就能编译(TouchGFX这个开发流程简直无敌,以后GUI没有一个完备的上位机仿真是很难有市场的)。 效果完美,收工。 |
《如何使用TouchGFX》视频课程上线啦:助力你的GUI设计
TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!
【STM32H7S78-DK】汽车仪表系统
【STM32H7S78-DK评测】TouchGFX (QR Code)二维码生成器
STM32U5 系列使用 LPBAM 进行功耗优化
基于STM32实现“单芯片”模式:TouchGFX 4.24 的创新分析
【STM32U545】实现CAN数据收发
【我的STM32U5 项目秀】+04-MPU6050在STM32U5上的移植
实战经验 | 基于 STM32U5 创建 USBx_CustomHID 通信
STM32U5 x E-BIKE,记录你的骑行多巴胺
羡慕楼主的大圆屏
TouchGFX确实非常牛逼,学习了