LVGL触摸移植——stm32野火F103

这篇具有很好参考价值的文章主要介绍了LVGL触摸移植——stm32野火F103。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录


目录

系列文章目录

章目录

目标

一、认识端口文件

二、使能 lv_port_indev.c 

三、接口函数

1.输入设备初始化

四、Main函数

五、过程中的疑难杂症

1.内存不足

2、LCD白屏

五、效果

总结


目标

在显示的基础上添加触摸输入


提示:以下是本篇文章正文内容,下面案例可供参考

一、认识端口文件

这两个是输入设备的端口文件,这里我改过文件名(原文件名叫 lv_port_indev_template

lvgl 触摸移植,个人学习博客,stm32,单片机,mcu

 只需要把相应的触摸屏驱动函数添加到文件里的函数里即可驱动

二、使能 lv_port_indev.c 

首先把 文件使能 

 

在 lv_port_indev.c 的顶部 (红圈),设置为#if  1

三、接口函数

 函数均在lv_port_indev.c

1.输入设备初始化

void lv_port_indev_init(void)

用于初始化你的输入设备 (触摸屏、按键、鼠标键盘等等)

该函数结构还是比较分明的

lvgl 触摸移植,个人学习博客,stm32,单片机,mcu

 可选择你需要的输入设备裁剪 (这里只用了触摸屏所以,其他全部注释掉,我用的#if 0 )


下面主要看lv_port_indev_init(void)的触摸屏部分

lvgl 触摸移植,个人学习博客,stm32,单片机,mcu

我们主要做的就是实现画红线的函数

   touchpad_init();                    //初始化你的触摸模块

再touchpad_init函数添加你的触摸模块初始化函数

/*Initialize your touchpad*/
static void touchpad_init(void)
{
    /*Your code comes here*//*这里放你的模块初始化代码**/
		
}

touchpad_read()       //回调函数

主要功能是获取触摸屏状态和按下坐标,LVGL会自动定期调用此函数

下面是函数原形

lvgl 触摸移植,个人学习博客,stm32,单片机,mcu需要修改的是画红线的2个函数

static bool touchpad_is_pressed(void)             //返回触摸状态  按下返回true  否则false

/*Return true is the touchpad is pressed*/
static bool touchpad_is_pressed(void)
{
    /*Your code comes here*/
		/*这里添加判断你的触摸状态的代码*/
    return false;
}

例子:

用的野火的触摸屏库函数

lvgl 触摸移植,个人学习博客,stm32,单片机,mcu

/*Return true is the touchpad is pressed*/
static bool touchpad_is_pressed(void)
{
    /*Your code comes here*/
		if(XPT2046_TouchDetect()==TOUCH_PRESSED) return true;  /*按下返回真*/
    return false;
}

touchpad_get_xy(lv_coord_t * x, lv_coord_t * y)          //获取触摸屏坐标

/*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*/
	
		/*这里添加你的代码(获取触摸模块的坐标)*/

    (*x) = your_x;   
    (*y) = your_y;
}

例子:

野火的获取坐标函数 

lvgl 触摸移植,个人学习博客,stm32,单片机,mcu

添加到上面的源码

/*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*/
	
		XPT2046_Get_TouchedPoint(&cinfo1,strXPT2046_TouchPara);  //获取坐标

    (*x) = cinfo1.x;        //把获取的值给LVGL
    (*y) = cinfo1.y;
}

四、Main函数

最后直接在main函数 调用

lv_port_indev_init(void)

即可

五、过程中的疑难杂症

1.内存不足

解决

lvgl 触摸移植,个人学习博客,stm32,单片机,mcu

 再魔术棒c/c++   把箭头指向的配置项 配置为Level3  (原来是Level0  )

也可以改显示缓冲区的大小

lvgl 触摸移植,个人学习博客,stm32,单片机,mcu

更改buf_1大小


 

以下是野火例程的问题

2、LCD白屏

好像是LCD初始化太快了

lvgl 触摸移植,个人学习博客,stm32,单片机,mcu

 结果仿真调试 发现逐条运行时  REG_Config 函数的没有问题

但全速运行时会有问题   ,所以我加了2条延时函数 

五、效果

   添加了部件如圆弧 按键 ,如果你完成了输入设备的配置 ,你可以对你的控件进行操作

lvgl 触摸移植,个人学习博客,stm32,单片机,mculvgl 触摸移植,个人学习博客,stm32,单片机,mcu

 滑动圆弧

总结

        好多bug、太痛苦了文章来源地址https://www.toymoban.com/news/detail-672303.html

到了这里,关于LVGL触摸移植——stm32野火F103的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32移植LVGL(LittleVGL)

    https://lvgl.io/ 这是LVGL的官网, http://lvgl.100ask.org/8.2/intro/index.html 这是lvgl的中文介绍网站。 先通过这两个网站大致了解一下lvgl,在后面移植时会有个大概了解,移植起来会更清晰易懂。 1、准备STM32工程 1、先准备所用到的屏幕的显示和触摸(有触摸功能的屏幕)的工程。我这

    2023年04月16日
    浏览(39)
  • stm32 移植 LVGL 基础工程

    注意:这里只是本人的一些学习心得,和对移植的理解,不明白之处还得去跟着官方教程学学! 开发板使用的是 stm32f103zet6 芯片 准备 LVGL 源码 8.3 版本 定时器实验 触摸屏实验(使用 3.5的 屏幕) 1、使用触摸屏实验为主体来配置文件 (1)把触摸屏实验改为 LVGL 移植实验 (

    2024年01月20日
    浏览(41)
  • 【ESP32+LVGL】1.69寸ST7789+CST816触摸屏之Vscode+platformio开发例程搭建移植

    ESP32开发板(本文以乐鑫系列ESP32-WROOM-32U为例,基本espressif系列的ESP32都行) ST7789+CST816驱动的触摸屏(这里以中景园1.69寸240*280的触摸屏为例) Vscode+platformio插件 触摸屏转接板(最好有,比较方便接线,直接连线问题应该也不大) 在Vscode下,使用platformio插件新建一个工程项

    2024年02月03日
    浏览(63)
  • STM32移植LVGL+旋转编码器接口对接

    写在前面:本菜鸟结合了许多大佬的文章,成功实现了基于LVGL的GUI设计,小开心~浅浅记录一下!~ 本文以单片机STM32F103VET6为核心,利用ST7796芯片驱动分辨率为480*320的LCD液晶屏模块,移植LVGL,对接显示接口,对接外部接口——旋转编码器,完成以上两步,就可以实现LVGL的显

    2024年02月10日
    浏览(45)
  • LVGL学习笔记(二):从0到1移植LVGL8.1到STM32平台上(完结篇)

    目录 一:TFT-LCD屏触摸 二:STM32CubeMX配置 三:FT5206触摸芯片驱动代码移植 四:LVGL 移植 4.1 源码下载 4.2 代码移植  4.3 添加源码至工程 4.4 指定头文件路径 4.5 设置编译参数  4.6 修改LVGL源文件   4.7 修改显示驱动接口    4.8 修改输入设备驱动接口  五:下载验证  六:工

    2024年02月03日
    浏览(46)
  • stm32第一节:认识寄存器(野火指南者——STM32F103VET6)

            STM32芯片架构                 Cortex-M3内核(arm)——(I,S,D)——总线矩阵——外设, Flash,SRAM                 外设—— GPIO,USART,12C,SPI ……         Flash及SRAM储存                 Flash——常量                 SRAM——变量         DMA作用   

    2024年02月21日
    浏览(49)
  • SquareLine studio设计LVGL工程,移植到stm32的过程

            本文主要是给大家介绍一下如何将SquareLine studio设计的LVGL工程,移植到stm32的LCD液晶显示屏上。 本文做好的移植模板在这(移植模板),模板可以直接在正点原子stm32f103ze系列板子上运行测试。显示屏使用的是4.3寸屏幕(像素800*480)         ·以我自己设计的LVGL工程

    2024年02月03日
    浏览(79)
  • STM32 RGB屏幕驱动+LVGL移植 从底层到应用小项目

    项目使用正点原子STM32F767阿波罗开发板+IPS TFT-LCD屏幕(非正点原子屏幕)进行开发,应用层移植轻量级GUI库LVGL实现列表按键点击,切换,显示当前内部工作电压功能。重点在于对于RGB屏幕驱动普适性的学习和LVGL开发的理解。希望我实习期间的项目学习过程能对大家有所帮助

    2024年02月15日
    浏览(34)
  • STM32移植LVGL8.0.2超详细的保姆级教程附移植好的工程文件

    网上教程那么多,为什么你要写这个教程? 问的好,csnd上很多类似的教程,他们写的都很好,但是有些过于简洁,对刚上手的小伙伴不太友好,移植到一半遇到bug就想放弃。一些第三方的教程很详细,但是由于lvgl的版本迭代很快,移植的过程有了一些变化,所谓失之毫厘差

    2024年02月03日
    浏览(42)
  • idf lvgl8显示触摸移植,st7789v+cst816

    用到的所有文件链接 我整理的lvgl文件:https://gitee.com/BHJ2022/lvgl.git gsm项目地址:https://gitee.com/gsm-wheather-project 1)将gsm中的屏幕及触摸驱动(touch_screen文件夹)直接复制到lvgl_disp_indev的component文件中 2)修改touch_screen的cmakelist如图 3)将gsm中的main中的include直接复制到lvgl_disp_

    2024年02月07日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包