
0.前言 年前申请了H750开发板,这个板子和H745是一样的外设,只有芯片不同。先写一篇开箱,尝试做个简单的菜单DEMO。 1.开箱 正常包装如图,和最新的纸盒包装不同,是那种有点年头的塑封包装,应该是库存货,不过这并不影响做产品DEMO和示例 ![]() 除板子以外还有一块FANOUT board,用来接外扩展模块和传感器,不过这次用不到这个小板子。 2. 应用 先试一下RTC和时钟 RTC配置如下: ![]() 在TOUCHGFX的MODEL中调用RTC组件;同时配置对应的.H文件 extern RTC_HandleTypeDef hrtc; extern RTC_TimeTypeDef RTC_Time; extern RTC_DateTypeDef RTC_Date; Model::Model() : modelListener(0) { } void Model::tick() { HAL_RTC_GetTime(&hrtc, &RTC_Time, FORMAT_BIN); HAL_RTC_GetDate(&hrtc, &RTC_Date, FORMAT_BIN); modelListener->updateTime(RTC_Time.Hours, RTC_Time.Minutes, RTC_Time.Seconds); } 在页面中添加一个模拟时钟组件,因为是竖屏,所以这里我选的是最大号的, ![]() 经常看各种指针有点乏味了?不妨吧指针图片修改一下,改成两个半圆组合的圆形: ![]() 插入后如图 ![]() 调用代码,使得该页面时每段时间都读取RTC中的数值 void AnalogScreenPresenter::updateTime(uint8_t hour, uint8_t minute, uint8_t second) { view.updateTime(hour, minute, second); } 不过,这种每次都要运行到对应函数,才能调用RTC读取代码,实际应用会感觉有些卡顿,指针的速度忽快忽慢: 这里参考官方WIKI的办法,添加一组计时器TickCounter,指针部分使用Counter并使能,抛弃部分准确度来获得更流畅的动画效果 ![]() 代码如下: void AnalogScreenPresenter::handleTickEvent() { tickCounter++; if (tickCounter % 60 == 0) { if (++second >= 60) { analogSeconds = 0; if (++minute >= 60) { analogMinutes = 0; if (++hour >= 24) { hour = 0; } } } view.updateTime(hour, minute, second); } 最后效果如图: ![]() |
STM32N6DK测评 CUBEIDE上运行coremark
STM32N6570DK开发板测评 功耗测试
STM32N6570-DK AIdemo测试
STM32N6570DK开发板测评 DCMI摄像头测试
STM32N6下载app到Flash中运行
【STM32F769I-DISC1】刷入micropython并完成点灯、读取内部温度测试
【STM32F769I-DISC1】移植LVGL
【STM32L562E-DK 测评】简介、环境搭建、工程测试
【STM32H745I-DISCO】测评:1、TouchGFX Designer初体验
【STM32H745I-DISCO GuiDemo 】GuiDemo 添加仪表应用