本帖最后由 DFY 于 2021-1-7 11:33 编辑
demo是官方例程lv_demo_keypad_encoder,代码仅做了底层的硬件移植,使用外部按键模拟编码器
KEY0---下 LV_KEY_RIGHT/LV_KEY_NEXT
KEY1---确定/短按/长按 LV_KEY_ENTER
KEY2---上 LV_KEY_LEFT/LV_KEY_PREV
编码器支持两种模式,导航和编辑模式。
导航是在对象之间进行切换,就像TAB键一样,可以轻松的在上下对象切换。
编辑模式是对对象进行编辑,例如改变数值,选择选项等。
编码器如何跟对象关联控制?
LVGL有一个组的概念,简单的来说,就是把这些对象和输入设备通过组来关联起来。
例如将编码器输入设备、控件对象添加入一个组,那么编码器的动作都会被这个组接收,从而实现组的对象之间导航和编辑。
在每个组中,只有一个焦点的对象可以接收按下的键或编码器的动作。例如,如果将文本区域作为焦点,然后在键盘
上按一些字母,则将发送键并将其插入文本区域。同样,如果滑块处于聚焦状态,然后按向左或向右箭头,则滑块的
值将被更改。
编码器使用编码器,您可以做4件事: 简而言之,编码器输入设备的工作方式如下:
编辑和浏览模式由于键盘有很多键,因此很容易在对象之间导航并使用键盘进行编辑。但是,编码器的“键”数量有限,因此很难使用默认选项进行导航。创建导航和编辑是为了避免编码器出现此问题。 在导航模式下,编码器LV_KEY_LEFT/RIGHT转换为LV_KEY_NEXT/PREV。因此,将通过旋转编码器选择下一个或上一个对象。按LV_KEY_ENTER将更改为编辑模式。 在“编辑”模式下,LV_KEY_NEXT/PREV通常用于编辑对象。根据对象的类型,短按或长按可将其LV_KEY_ENTER更改回导航模式。通常,无法按下的对象(例如Slider)会在短按时离开“编辑”模式。但是对于具有单击意义的对象(例如Button),则需要长按。
源码文件看key.c和lv_demo_keypad_encoder.c
F767-LVGL7.8.1 - 编码器.zip
(14.6 MB, 下载次数: 796)
|