[STM32H7] 【STM32H7S78-DK测评】3.触摸按键控制LED+RTC时钟显示

[复制链接]
2082|6
 楼主| cooldog123pp 发表于 2024-9-14 23:43 | 显示全部楼层 |阅读模式
本帖最后由 cooldog123pp 于 2024-10-1 15:42 编辑

之前分享了一波LED流水灯的控制,今天将通过TouchGFX Designer来做一个按键控制LED,在搞个表盘显示RTC。
先打开TouchGFX Designer 添加一个Button空间然后再添加一个触发事件。说一下,TouchGFX Designer可以直接通过ST
开发板的型号来选择工程并生成配套代码,我们选择好要保存的文件夹:
2321366e5a2a2b7180.png
1009466e5a2e2eb5e1.png
4289366e5a2c3b2214.png 2493566e5a2db86b53.png
都搞定以后,按F4生成代码即可,

打开生成代码的文件夹中STM32CubeIDE的工程文件,在appil里面添加相关代码。这里做个简单介绍
Screen1View.cpp和Screnn1View.hpp中分别要声明LedToggle函数并实现它
  1. class Screen1View : public Screen1ViewBase
  2. {
  3. public:
  4.     Screen1View();
  5.     virtual ~Screen1View() {}
  6.     virtual void setupScreen();
  7.     virtual void tearDownScreen();
  8.                     void LedToggle();

  9. protected:
  10. };
  1. void Screen1View::LedToggle()
  2. {
  3.    HAL_GPIO_TogglePin(PD2_GPIO_Port, PD2_Pin);
  4. }
此外还要在Button的回调函数中调用LedToggle
  1. void Screen1ViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
  2. {
  3.     if (&src == &toggleButton1)
  4.     {
  5.         //Interaction1
  6.         //When toggleButton1 clicked call virtual function
  7.         //Call LedToggle
  8.         LedToggle();
  9.     }
  10. }
实现效果:别忘记了还有一点是你要点亮那个LED也要把它的IO配置一下。
VID_20240912_215614.gif

接下来实现RTC相关,首先在刚刚GUI的基础上增加一个表盘和一个数字时钟,并重新生成代码,
3919866e5a82b14d4c.png
然后我们需要配置一下RTC本身如下,
8676566e5ad9849527.png
4384666e5adab601eb.png

代码没有什么特别的可以参考sujingliang这位坛友的帖子,写的很详细了,
唯一需要注意的就是,要添加HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);如下,其他的注意初始化和声明即可
  1. void Model::tick()

  2. {

  3.         static uint8_t tick=0;

  4.         tick++;



  5.         if(tick%60==0)

  6.         {

  7.                 HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN);

  8.                 HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);

  9.                 modelListener->updateTime(sTime.Hours,sTime.Minutes,sTime.Seconds);

  10.                 printf( "%2d:%2d:%2d\r\n", sTime.Hours, sTime.Minutes, sTime.Seconds);

  11.                 tick=0;

  12.         }

  13. }
实际效果如下:

VID_20240913_230048.gif











Amazingxixixi 发表于 2024-10-31 16:11 | 显示全部楼层
这个触摸是电阻的还是电容的?多少点的?
suncat0504 发表于 2024-10-31 17:17 | 显示全部楼层
TouchGFX Designer使用起来麻烦不?
地瓜patch 发表于 2024-10-31 18:33 来自手机 | 显示全部楼层
这个套板子是几片板子组成的
铁血丹心LLLL 发表于 2024-12-29 00:22 | 显示全部楼层
在生成的文件夹中,App 文件夹是用户应用逻辑的主要代码位置。
Stahan 发表于 2024-12-29 18:13 来自手机 | 显示全部楼层
这块屏幕不错
yangjiaxu 发表于 2024-12-31 13:23 | 显示全部楼层
TouchGFX是不是直接输出的就是代码了,可以直接烧录了就
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2304

主题

7626

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部