打印
[STM32L5]

【STM32L562 DK试用】TouchGFX适配触摸实现LED控制

[复制链接]
197|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lulugl|  楼主 | 2025-5-17 10:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
【前言】
在前面几篇中,我移植好了TouchGFX、以及触摸驱动,那么适配触摸屏与TouchGFX也是基础之本,这一篇,我将适配触摸与touchgFX的结合,实现一个按键来实现板载LED的控制功能。
【移植】
1、在touchgfxDesiger上创建一个按键:

2、创建一个基于按键的虚拟函数:

3、重新生成工程。
4、在STM32TouchController.cpp中引用触摸驱动头文件,并声明触摸全局函数:
 #ifdef __cplusplus  
extern "C"{  
#include "stm32l562e_discovery_ts.h"
}  
#include <stdio.h>
extern __IO FlagStatus TouchDetected;
TS_MultiTouch_State_t TsMultipleState = {0};
#endif  

5、适配touchgfx的触摸坐标获取:
bool STM32TouchController::sampleTouch(int32_t& x, int32_t& y)
{

               
                if (TouchDetected == SET)
    {
      TouchDetected = RESET;

                        BSP_TS_Get_MultiTouchState(0, &TsMultipleState);

                        if(TsMultipleState.TouchDetected >= 1)
                                {
                                        /* Get X and Y position of the touch post calibrated */
                                        x = TsMultipleState.TouchX[0];
                                        y = TsMultipleState.TouchY[0];
                                        return true;
                                }
                        }
    return false;
}
6、在screeView.hpp声明虚拟函数:

7、在screeView.cpp实现虚拟函数:

#include <gui/screen_screen/screenView.hpp>
#include "stm32l562e_discovery.h"
screenView::screenView()
{

}

void screenView::setupScreen()
{
    screenViewBase::setupScreen();
}

void screenView::tearDownScreen()
{
    screenViewBase::tearDownScreen();
}

void screenView::button_click()
{
        BSP_LED_Toggle(LED9);
}
【实现效果】


使用特权

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

本版积分规则

177

主题

814

帖子

11

粉丝