你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【GUI板免费申请活动】STM32H745I-DISCO 调光小台灯

[复制链接]
lugl 发布时间:2025-1-1 21:00

今天是2025年的元旦,首先祝大家元旦快乐,希望大家在新的一年里,身体健康,工作顺利,万事如意。

【前言】

【GUI板免费申请活动】STM32H745I-DISCO 环境监测 - ST中文论坛活动 ST意法半导体中文论坛

这一篇中,我使用温湿度传感器制作了一个环境监测的小DEMO,这一篇是在这一篇的基础之上,添加小台灯的控制,其实实现原理是在图形界面添加一个滑动组件,一个文本组件,一个图标。其中滑动组件滑动事件产生事件的变化,将变化的值传给文本组件,实现数据的实时变动,以及通过对图标组件的ALPHA值进行变换实现图标的亮与灭。同时通过pwm的信息来控制一组IO的pwm占空比的输出,来控制小台灯的亮度。

【硬件】

STM32H745I-DISCO开发板。

5V小台灯。

MOS驱动模块。

【软件实现】

1、在TouchGFX中添加一个图标

2、添加一个文件框,添加buff

image.png

3、添加一个滑动组件,设置如下:

image.png

4、为滑动添加一个事件函数:

image.png

【STM32CubeMX工程设置】

生成工程后,使用stm32cubeMX打开工程,添加pwm配置,根据原理图我选择开发板的标准Arduino接口的ARD_D5作来pwm输出接口,IO为PA8,其原理图如下:

image.png

2、在STM32CubeMX中配置它为通用pwm输出接口。从时钟树上查到TIM1的主频为200MHz,因此我把分频系数配置为200-1,溢出值设置为1000-1,即输出为1KHz的pwm波形,初值计数值为0,就是初始化后占空比为0,LED灯关闭。

image.png

【用户代码实现】

生成工程后,使用mdk打开工程。

1、在screen_view.hpp中添加我们在touchGFX desiger上面生成的滑动组件的实现函数:

class Screen1View : public Screen1ViewBase
{
public:
    Screen1View();
    virtual ~Screen1View() {}
    virtual void setupScreen();
    virtual void tearDownScreen();
        void set_temp_hum(float temp, float hum);
        void handleTickEvent();
        virtual void lightChange(int value);  //滑动组装值变化事件回调函数
protected:
};

2、在screen1_view.cpp中实现这个函数:

  void Screen1View::lightChange(int value)
{
    Unicode::snprintf(texLightBuffer,10,"%d",value);  //更改文本显示
    texLight.invalidate();
    imageLight.setAlpha((int)value*2.5);  //更改图片显示
    imageLight.invalidate();
    __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, value*10);  //修改pwm占空比
}

3、在main.c中需要添加一句HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);来开启定时器

编译下载到开发板。通过对滑动模块的左右调节,就可以实现显示亮度,同时也可以实时实现对小台灯的控制。

视频介绍:【STM32H745-创意小台灯】 https://www.bilibili.com/video/BV1FG6oYeExe/?share_source=copy_web&vd_source=46ffd4c7b1be3ec2b63adcc32d97b26b

附源码:

收藏 评论0 发布时间:2025-1-1 21:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版