【项目简介】 在TouchGFX的基础工程,建立一个主界面、一个屏保的界面,可以实现定时进入屏幕保护界面,在屏幕保护界面,占击指定区域可以退出屏幕保护。两个界面实现实时读取RTC时间,并显示。 【软件环境】 1、STM32CubeIDE 1.16.0 2、STM32CubeMX 6.12.0 3、ToucGFX Designer 4.24.0 【界面设计】 1、创建主屏幕,添加背景图片。然后添加一个TEXT控制,指定缓冲区,字长为40字节长度。再添加一个数据时钟控件。效果下图所示: 2、添加一个屏幕保护界面,先添加一个表盘时钟控件,选择合适的表盘。然后向界面添回一个按键,选择合适的大小,并设置其为不可见: 设计好后,给两个屏幕控制添加切换事件,如下图所示: 添加一个自定义事件,事件为切换屏幕到屏保,一个为点击回到主界面。 【主要代码】 1、添加RTC驱动,在stm32CubeMX中启动APP的RTC并开启。 生成工程后,使用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> |
【STM32H7S78-DK】汽车仪表系统
【STM32H7S78-DK】基于 rtthread 适配 lcd 驱动移植 lvgl
【STM32H7S78-DK评测】TouchGFX (QR Code)二维码生成器
【STM32H7S78-DK】rtthread 增加 psram 内存管理
【STM32H7S78-DK】开箱与rtthread工程初体验
【STM32H7S78-DK评测】-5 LVGL&DMA2D DEMO测试
【STM32H7S78-DK评测】-4 LTDC&DMA2D 基本测试
【STM32H7S78-DK评测】CoreMark移植和优化--兼记printf重定向实现方法及常见问题
【STM32H7S78-DK评测】移植AI框架TensorFlow【DSP指令加速篇】
【STM32H7S78-DK评测】移植AI框架TensorFlow【下篇】
界面设计上感觉可以在优化下,感觉可以做的更好看
正在努力中!