| 【前言】 在评测计划中有使用pwm来实现调节屏幕亮度,因此本篇为如何使用HMI实现对屏的亮度调节。实现原理为,使用TouchGFX Designer添加一个滑动控件,通过滑动来修改pwm的占空比,实现ST7789的BLK的电压实现。
 本次工程在上一篇试用的基础上创建:
 
 【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,提供了非常方便的控制,在少量的代码下,轻松实现对屏幕的的亮度调节。
 
 
 |