OpenEdv-开源电子网

 找回密码
 立即注册
查看: 2829|回复: 1

lvgl 键盘 或 编码器输入问题

[复制链接]

19

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-9-2
在线时间
83 小时
发表于 2021-10-30 19:37:59 | 显示全部楼层 |阅读模式
10金钱
我的设备有四个按键分别为:up、down、ok、cancel。看了lvgl输入设备的几种类型,发现编码器方式比较适合,于是我使用了Using buttons with Encoder logic这种方式(如图一所示)
  1. /* Will be called by the library to read the mouse */
  2. static bool keypad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
  3. {
  4.     uint8_t act_key = keypad_get_key();
  5.     uint8_t last_diff = 0;
  6.     data->key = act_key;
  7.     if(act_key == LV_KEY_LEFT) data->enc_diff = -1 - last_diff;
  8.     if(act_key == LV_KEY_RIGHT) data->enc_diff = 1 - last_diff;
  9.     last_diff = data->enc_diff;
  10.     /*Return `false` because we are not buffering and no more data to read*/
  11.     return false;
  12. }
复制代码
这是我的read_cb函数

因为我只有4个按键,所以我想用编码器的Edit and navigate这个特性。可是目前只有left/right起效了(LV_EVENT_FOCUSED / LV_EVENT_DEFOCUSED 事件),确认/取消却不响应(LV_EVENT_CLICKED / LV_EVENT_CANCEL 事件),不知道为什么?

图1

图1
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2019-4-27
在线时间
31 小时
发表于 2022-6-21 14:31:08 | 显示全部楼层
博主,请问您解决LVGL 编码器的问题了吗,能给份参考程序吗感谢。lee_zfeng@163.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-8 21:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表