
【项目简介】 在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> |
【STM32H745I-DISCO】TouchGFX探索——3、触屏滑屏操作与中文显示
TouchGFX软件下载及使用
【STM32H745I-DISCO】TouchGFX探索——2、照葫芦画瓢
STM32H745I-DISCO硬件信号为空,M4、M7对于硬件信号的优先性判断
【STM32H745I-DISCO】TouchGFX探索——1、Example移植
STM32H745I-DISCO的GUI DEMO板摸索2-双核通讯
【STM32H745I-DISCO】基于CubeIDE的双核芯编程工程建立,以及双核间的通信测试
【STM32H745I-DISCO GuiDemo 】GuiDemo 基本工程搭建
NUCLEO-H723ZG开发板试用 ——串口点灯测试
兔哥的杂谈【002】——如何性价比更高地去编译STM32
界面设计上感觉可以在优化下,感觉可以做的更好看
正在努力中!