LVGL配置输入设备(按键)

本文章用于自己复习回顾。

一、踩的坑

        外接按键,若采用引脚上下拉输入,循环扫描的方式读取按键值,外部输入设备(按键)必须要与单片机共地(GND相连),否则按键不起作用(虽然很简单,但是这个坑搞了两天才解决)。

二、LVGL外部输入设备

        我是用esp32在vscode platformio环境下移植的lvgl,移动完lvgl后,由于不是触摸屏,需要采用外部输入设备,这里我采用的是按钮。在project\.pio\libdeps\esp32dev\lvgl\examples\porting路径下将lv_port_indev_template.c、lv_port_indev_template.h分别复制到lib路径下,并改名为lv_port_indev.c、lv_port_indev.h,并将两个文件的宏定义打开,如下图所示。

         由于可供输入的设备有触摸、鼠标、键盘、编码器等,这里我使用的按键,为了让文件看起来不这么乱,将与其余输入设备相关的函数全注释掉(也可以直接删掉),只剩下与按键有关的4个函数。

         输入设备初始化函数lv_port_indev_init不需要修改,如下图。

        keypad_init函数里面放与引脚初始化有关的程序,这个我采用引脚5,17,18上拉输入。

        keypad_get_key是按键扫描函数,也是最为关键的函数,引入了一个标志位,当mode为0的时候,不支持连按,当mode为1时,支持连按。

         keypad_read函数是获取按键值,从而执行相应命令的函数。

         这些命令的具体含义见下图。

         最后只需要在setup()中调用输入设备初始化函数 lv_port_indev_init()即可。

三、提高屏幕刷新率

        单Buf时,Buf尺寸至少为屏幕的1/8,较好的情况为1/4。目前对该知识点的学习尚浅,还需要继续学习。

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sense_long

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值