关于LVGL下物理按键的使用

  • Post author:
  • Post category:其他


当时有一个想法,想用我珍藏3年全新未开封的mini开发板,使用LVGL显示,然后用物理按键控制,最终制作一个…好吧我编不下去了。其实就是想在LVGL界面下使用物理按键控制。

然后就在网上疯狂找使用物理按键控制的相关资料和方法,可想而知,如你们所愿,当时基本上是找不到的,翻墙不知道有没有。

接着只能想其它的办法了,当时也是绞尽脑汁。最后看到PC模拟器的官方历程是可以直接用键盘控制,然后就开始玩弄模拟器版本,最终发现了keyboard驱动,只需要把模拟器的keyboard驱动用法移植到单片机中就可以了。

以下的代码就是PC模拟器例子的键盘注册部分。

还有比较重要的键盘回调函数要写

上面两个部分,就是PC模拟器LVGL物理键盘的核心了,关于键值,这边没有记录太多。

下面移植到单片机的LVGL中就可以了,回调函数会有一些变化,基本思想一样。

首先也是在你的页面布局好之后,添加键盘驱动,我的整个屏幕是一个grop对象,

lv_indev_set_group(real_kb_indev, grop);这句话就是让按键在这个grop里面生效。

然后就是写一下回调函数,回调函数其实LVGL会每一个周期都去运行这个函数,

data->state =1时LVGL才会处理data->key的值,等于0时则反之

最后就是物理按键部分了

演示视频:

lvgl使用物理键盘控制_哔哩哔哩_bilibili

运行环境,原子哥mini开发板+屏幕

代码下载:

https://download.csdn.net/download/HES_C/33136949



版权声明:本文为HES_C原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。