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

【STM32H7S78-DK评测】+ 3 基于TouchGFX的屏幕保护

[复制链接]
lugl 发布时间:2024-8-8 19:51

【项目简介】

在TouchGFX的基础工程,建立一个主界面、一个屏保的界面,可以实现定时进入屏幕保护界面,在屏幕保护界面,占击指定区域可以退出屏幕保护。两个界面实现实时读取RTC时间,并显示。

【软件环境】

1、STM32CubeIDE 1.16.0

2、STM32CubeMX 6.12.0

3、ToucGFX Designer 4.24.0

【界面设计】

1、创建主屏幕,添加背景图片。然后添加一个TEXT控制,指定缓冲区,字长为40字节长度。再添加一个数据时钟控件。效果下图所示:

image.png

2、添加一个屏幕保护界面,先添加一个表盘时钟控件,选择合适的表盘。然后向界面添回一个按键,选择合适的大小,并设置其为不可见:

image.png

设计好后,给两个屏幕控制添加切换事件,如下图所示:

image.pngimage.png

添加一个自定义事件,事件为切换屏幕到屏保,一个为点击回到主界面。

【主要代码】

1、添加RTC驱动,在stm32CubeMX中启动APP的RTC并开启。

image.png

生成工程后,使用stm32cubeIDE打开工程。

2、在两个屏幕的函数中添加用户代码。

在主屏幕中添加tick周期函数,其主要思想是计数到1秒更新一次时间。同理计数据到10秒钟时,会进入屏幕保护界面:

void Screen_mainView::handleTickEvent ()

{

static int tickCounter;

tickCounter++;

if (tickCounter % 60 == 0)

{

HAL_RTC_GetTime(&hrtc, &gSystemTime, RTC_FORMAT_BIN);//获取时间

/ Get the RTC current Date /

HAL_RTC_GetDate(&hrtc, &gSystemDate, RTC_FORMAT_BIN);//获取日期

Unicode::snprintf(textDateBuffer, TEXTDATE_SIZE, "%4d-%02d-%02d", 2000 + gSystemDate.Year,gSystemDate.Month, gSystemDate.Date);

textDate.invalidate();

digitalClock.setTime24Hour(gSystemTime.Hours, gSystemTime.Minutes, gSystemTime.Seconds);

}

if (tickCounter % 600 == 0)

{

application().gotoSCreen_sleepScreenNoTransition();

tickCounter = 0;

}

}

在屏幕保护界面,添加button自定义函数,点击后返回主界面。同时添加tickEvent事件,定期更新时间:

void SCreen_sleepView::handleTickEvent ()

{

static int tickCounter;

tickCounter++;

if (tickCounter % 60 == 0)

{

HAL_RTC_GetTime (&hrtc, &gSystemTime, RTC_FORMAT_BIN);//获取时间

/ Get the RTC current Date /

HAL_RTC_GetDate (&hrtc, &gSystemDate, RTC_FORMAT_BIN);//获取日期

analogClock.setTime24Hour (gSystemTime.Hours, gSystemTime.Minutes, gSystemTime.Seconds);

tickCounter = 0;

}

}

实现效果,详见视频介绍。

<iframe src="https://player.bilibili.com/player.html?isOutside=true&aid=112926300114275&bvid=BV19uYxeBEiw&cid=500001642665926&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>

收藏 评论3 发布时间:2024-8-8 19:51

举报

3个回答
lugl 回答时间:2024-8-8 20:07:31
视频链接:[STM32H7S屏幕保护_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV19uYxeBEiw/?pop_share=1&vd_source=e1bd226340c8b87027d5dcfc6b0c3344)
8 g6 N+ b; ]) W) @) Q
8 g/ h2 l" d3 N* q
, \( D  j& Y6 \8 T6 j5 h, @! J8 |1 I
STMCU-管管 回答时间:2024-8-9 15:40:10

界面设计上感觉可以在优化下,感觉可以做的更好看

lugl 回答时间:2024-8-12 07:26:52

STMCU-管管 发表于 2024-8-9 15:40
界面设计上感觉可以在优化下,感觉可以做的更好看

正在努力中!

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版