当时有一个想法,想用我珍藏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开发板+屏幕