1476|4

441

帖子

3

TA的资源

纯净的硅(高级)

楼主
 

【HC32F4A0开发板】移植LVGL电容触摸屏驱动 [复制链接]

  本帖最后由 TL-LED 于 2023-3-1 08:37 编辑

https://bbs.eeworld.com.cn/thread-1234256-1-1.html这篇中,LVGL的显示部分移植到开发板上,

https://bbs.eeworld.com.cn/thread-1234575-1-1.html这篇中已经测试触摸屏驱动,下面将电容触摸功能也移植到开发板。

一、LVGL中添加触摸程序

 

LVGL的触摸程序是在lv_port_indev_templ.c文件中定义的

需要要到的函数如下:

在下面的文件中,添加触摸驱动程序部分。

在lv_port_indev_init函数中,只保留触摸屏相关的,其他都屏蔽掉,要不触摸不能用

添加触摸屏的代码:

/*Initialize your touchpad*/
static void touchpad_init(void)
{
    /*Your code comes here*/
	init_touch();
}

/*Will be called by the library to read the touchpad*/
static void touchpad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
{
    static lv_coord_t last_x = 0;
    static lv_coord_t last_y = 0;

    /*Save the pressed coordinates and the state*/
    if(touchpad_is_pressed()) {
        touchpad_get_xy(&last_x, &last_y);
			//DDL_Printf("last_x=%d, last_y=%d\r\n",last_x,last_y);
        data->state = LV_INDEV_STATE_PR;
    }
    else {
        data->state = LV_INDEV_STATE_REL;
    }

    /*Set the last pressed coordinates*/
    data->point.x = last_x;
    data->point.y = last_y;
}

/*Return true is the touchpad is pressed*/
static bool touchpad_is_pressed(void)
{
	//bool sta=0;
    /*Your code comes here*/
	if(TOUCHPAD_IsPressed())
	{
		//DDL_Printf("sta\r\n");
		return true;
		
	}
	//
	return false;
}

/*Get the x and y coordinates if the touchpad is pressed*/
static void touchpad_get_xy(lv_coord_t * x, lv_coord_t * y)
{
    /*Your code comes here*/
	static uint16_t u16LastX = 0U;
	static uint16_t u16LastY = 0U;
	BSP_GT9XX_GetXY(GT9XX_POINT1, &u16LastX, &u16LastY);
	
	//DDL_Printf("u16LastX=%d, u16LastY=%d\r\n",u16LastX,u16LastY);

    (*x) = 800-u16LastY;	//横屏
    (*y) = u16LastX;
}

在主程序中,添加初始化输入

二、程序运行

运行视频如下:

235609

 

 

 

 

 

 

 

 

 

最新回复

非常感谢大佬!   详情 回复 发表于 2023-3-1 16:56
点赞 关注
 
 

回复
举报

6972

帖子

11

TA的资源

版主

沙发
 
我的触摸怎么不起作用,可以发你的程序我学习一下吗?

点评

可以的,晚上发这个帖子上吧,现在手上没有。  详情 回复 发表于 2023-3-1 14:51
 
 
 

回复

441

帖子

3

TA的资源

纯净的硅(高级)

板凳
 
lugl4313820 发表于 2023-3-1 14:45 我的触摸怎么不起作用,可以发你的程序我学习一下吗?

可以的,晚上发这个帖子上吧,现在手上没有。

点评

非常感谢大佬!  详情 回复 发表于 2023-3-1 16:56
 
 
 

回复

6972

帖子

11

TA的资源

版主

4
 
TL-LED 发表于 2023-3-1 14:51 可以的,晚上发这个帖子上吧,现在手上没有。

非常感谢大佬!

 
 
 

回复

441

帖子

3

TA的资源

纯净的硅(高级)

5
 
hc32f4a0_prj_lvgl_20230301.rar (15.44 MB, 下载次数: 11)
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表