当前位置: 首页 > news >正文

芯课堂 | UI Creator 物理键盘移植指南

图片

LVGL提供输入设备的种类一共有5种,分别是:touchpad(触摸板)、mouse(鼠标)、keypad(键盘)、encoder(编码器)、button(外部按键)。而基于UI Creator框架下我们已经提供了touchpad的输入设备移植,但通常在我们的项目中,有多种输入方式,除了比较常见的屏幕触摸之外,还有矩阵按键和旋转编码器等输入方式也较为常见,而键盘的移植和使用跟触摸板有所区别,本篇旨在详细说明如何基于UI Creator框架移植键盘的输入设备。

RECRUIT

首先我们找到lv_porting/lv_port_indev.c文件打开,在静态声明中把关于keypad相关的声明复制出来,如下图所示:

图片

接着在lv_port_indev_init(void) 函数中同样把keypad相关的函数的复制出来,如下图所示:

图片

然后在静态函数中同样地把keypad相关函数复制出来,如下图:

图片

然后分别在keypad_init(void) 添加按键驱动的初始化和在keypad_get_key(void) 添加按键扫描代码,这里以每个IO驱动一个按键为例,将GPIO配置为输入、使能上拉,具体代码如下:

图片

然后编写按键扫描代码,与其定义的键值一一匹配

图片

为了方便验证,我们在keypad_read(…)中增加串口打印信息,来判断我们获取的键值是否正确

图片

完成后编译下载,我们看到串口调试助手中,打印信息符合预期,至此我们的键盘移植完毕。

图片

值得注意的是,我们需要使用lv_group_t *group = lv_group_create() 创建组,并且使用lv_group_add_obj(group, obj)在组中增加控件,最后将这个组添加给输入设备lv_indev_set_group(indev_keypad, group).

可以在界面的xxx_start(…)中创建组并添加控件,如下所示:

图片

至此,我们完成了基于UI Creator的输入设备之键盘(keypad)的移植,并且已经添加对应的组和控件。

相关文章:

  • element ui 的密码输入框点击显示隐藏密码时,图标随之改变
  • Mysql之基本架构
  • 信息系统项目管理师--八大绩效域-不确定性绩效域
  • 1701java药品进销存管理系统Myeclipse开发sqlserver数据库web结构java编程计算机网页项目
  • Docker简单使用
  • React中显示数据
  • 大数据学习之安装并配置maven环境
  • 领域知识 | 智能驾驶安全领域部分常见概论
  • 深入分析 Android Activity (三)
  • 如何用正则表达式匹配中文和英文
  • 树洞陪聊系统源码/陪聊/陪玩/树洞/陪陪/公众号开发/源码交付/树洞系统源码
  • 初步学习pygame,使用pygame搭建简单的窗口效果
  • ArrayList与LinkedList
  • 计算机网络 第三章 数据链路层 局域网的数据链路层
  • 图生视频 学习笔记
  • 分享一款快速APP功能测试工具
  • 【技术性】Search知识
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Codepen 每日精选(2018-3-25)
  • java8-模拟hadoop
  • JavaScript 一些 DOM 的知识点
  • jquery cookie
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Linux中的硬链接与软链接
  • nodejs调试方法
  • SQLServer之创建数据库快照
  • 前端面试之CSS3新特性
  • 实现简单的正则表达式引擎
  • 使用parted解决大于2T的磁盘分区
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 我有几个粽子,和一个故事
  • 正则与JS中的正则
  • 【干货分享】dos命令大全
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​ssh免密码登录设置及问题总结
  • #HarmonyOS:基础语法
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $jQuery 重写Alert样式方法
  • (07)Hive——窗口函数详解
  • (13)DroneCAN 适配器节点(一)
  • (2)(2.10) LTM telemetry
  • (二)windows配置JDK环境
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (转)EXC_BREAKPOINT僵尸错误
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Reactor简单使用教程
  • .NET 药厂业务系统 CPU爆高分析
  • .NET 中 GetProcess 相关方法的性能
  • .NET 中创建支持集合初始化器的类型
  • .NET开发者必备的11款免费工具
  • .NET是什么
  • .NET中winform传递参数至Url并获得返回值或文件
  • .sdf和.msp文件读取