19.2. lvgl_indev_usb_keyboard_mouse
19.2.1. 概述
本示例演示了在嵌入式系统上使用LVGL图形库结合USB HOST HID协议实现鼠标和键盘输入功能,主要特性包括:
支持USB HID鼠标的坐标移动和点击事件
支持USB HID键盘输入
适配LVGL v9版本和LVGL v8版本显示和输入设备框架,自适应LVGL版本。
集成FreeRTOS实时操作系统
19.2.2. 注意
USB协议栈初始化会设置键盘和鼠标设备运行在引导协议(boot protocol)
在引导协议中,对于键盘设备,在引导协议下仅支持标准的键盘扫描码集,不支持修饰键;对于鼠标设备,则只支持基本的指针移动和按钮点击功能。
19.2.3. 硬件要求
RGB/MIPI接口
USB鼠标/键盘外设
19.2.4. 硬件配置
连接开发板支持的屏幕,默认使用RGB屏。如需连接其他类型的屏,需要同步修改`board/xxx/CMakeLists.txt`,选择对应的屏幕
连接键鼠设备到USB0端口上。
19.2.5. 编译类型
flash_sdram_xip
flash_sdram_xip_release
19.2.6. 运行
一旦此程序正确运行,在屏幕上显示鼠标图标以及待编辑的输入框
鼠标移动:使用鼠标在屏幕上移动光标
键盘输入:输入文本并显示在屏幕上
如果键鼠设备插上,console会输出如下信息:
[I/USB] EHCI HCIVERSION:0x0100
[I/USB] EHCI HCSPARAMS:0x010011
[I/USB] EHCI HCCPARAMS:0x0006
[I/USB] EHCI ppc:1, n_ports:1, n_cc:0, n_pcc:0
[I/USB] EHCI uses tt for ls/fs device
[I/usbh_hub] New full-speed device on Bus 0, Hub 1, Port 1 connected
[I/usbh_core] New device found,idVendor:1ea7,idProduct:0066,bcdDevice:0200
[I/usbh_core] The device has 1 bNumConfigurations
[I/usbh_core] The device has 2 interfaces
[I/usbh_core] Enumeration success, start loading class driver
[I/usbh_core] Loading hid class driver
[I/usbh_hid] Ep=81 Attr=03 Mps=8 Interval=04 Mult=00
[I/usbh_hid] Register HID Class:/dev/input0
[I/usbh_core] Loading hid class driver
[I/usbh_hid] Ep=82 Attr=03 Mps=8 Interval=02 Mult=00
[I/usbh_hid] Register HID Class:/dev/input1
[I/usbh_hid] Unregister HID Class:/dev/input0
[I/usbh_hid] Unregister HID Class:/dev/input1
[I/usbh_hub] Device on Bus 0, Hub 1, Port 1 disconnected
[I/usbh_hub] New full-speed device on Bus 0, Hub 1, Port 1 connected
[I/usbh_core] New device found,idVendor:1ea7,idProduct:0066,bcdDevice:0200
[I/usbh_core] The device has 1 bNumConfigurations
[I/usbh_core] The device has 2 interfaces
[I/usbh_core] Enumeration success, start loading class driver
[I/usbh_core] Loading hid class driver
[I/usbh_hid] Ep=81 Attr=03 Mps=8 Interval=04 Mult=00
[I/usbh_hid] Register HID Class:/dev/input0
[I/usbh_core] Loading hid class driver
[I/usbh_hid] Ep=82 Attr=03 Mps=8 Interval=02 Mult=00
[I/usbh_hid] Register HID Class:/dev/input1