打印
[STM32U3]

【STM32U385RG 测评】PWM调节屏幕亮度

[复制链接]
129|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lulugl|  楼主 | 2025-7-20 16:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lulugl 于 2025-7-20 17:35 编辑

【前言】
在评测计划中有使用pwm来实现调节屏幕亮度,因此本篇为如何使用HMI实现对屏的亮度调节。实现原理为,使用TouchGFX Designer添加一个滑动控件,通过滑动来修改pwm的占空比,实现ST7789的BLK的电压实现。
本次工程在上一篇试用的基础上创建:https://bbs.21ic.com/icview-3470090-1-1.html

【GUI设计】
1、向屏幕添加slider控件,修改背景图标,适配屏幕大小,并修改其最大最小值:
2、同时添加一个Text组件,让其动态显示当前亮度。

3、同时添加图片以及其他说明标签,最后设计的界面如下:

4、添加slider值变化时的虚拟函数:


设计好后重新生成工程。
【代码设计】
1、首先在screenview.hpp中添加virtual void funChange(int value);

2、在screenview.cpp中实现,其代码如下:
void screenView::funChange(int value)
{
    int pwmVal = value * 5;
    __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_3, pwmVal);
    Unicode::snprintf(textLightBuffer,TEXTLIGHT_SIZE, "%d", value);
    textLight.invalidate();
}
下载后实现效果如下:

调节后效果如下:

【总结】
TouchGFX可以非常方便的实现HMI,提供了非常方便的控制,在少量的代码下,轻松实现对屏幕的的亮度调节。



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

180

主题

824

帖子

11

粉丝