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

【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
STMCU-管管 回答时间:2024-8-9 15:40:10

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

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

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

正在努力中!

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版