瀏覽代碼

update:hid键盘演示

alienwalker 3 年之前
父節點
當前提交
137fedd456
共有 1 個文件被更改,包括 28 次插入0 次删除
  1. 28 0
      demo/usb_hid/Air105/main.lua

+ 28 - 0
demo/usb_hid/Air105/main.lua

@@ -15,6 +15,34 @@ end)
 sys.taskInit(function()
     local rx_buff = zbuff.create(64)
     local tx_buff = zbuff.create(64)
+    -- 下面演示键盘模式下发送原始包来实现键盘功能
+    -- 底层键盘描述符中,1个包8个字节,byte0是控制按键值,其中
+    -- bit0 LeftControl
+    -- bit1 LeftShift
+    -- bit2 LeftAlt
+    -- bit3 LeftGUI
+    -- bit4 RightControl
+    -- bit5 RightShift
+    -- bit6 RightAlt
+    -- bit7 RightGUI win键
+    -- byte1 固定0
+    -- byte2~8 其他按键值,最多允许同时按下6个键
+    -- 没有按键按下时,8个byte都为0
+    -- 为了兼容扫码枪处理,允许一次发送多次按键处理
+    usbapp.start(0)
+    while 1 do
+        -- 模拟按下数字0,然后抬起
+        tx_buff:copy(0, "\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")
+        usbapp.hid_tx(0, tx_buff)
+        tx_buff:del()
+        sys.wait(5000)
+         -- 模拟按下Ctrl+Alt+A,然后抬起,QQ截屏
+        tx_buff:copy(0, "\x05\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")
+        usbapp.hid_tx(0, tx_buff)
+        tx_buff:del()
+        sys.wait(5000)
+    end
+    --下面演示自定义HID,使用前注释掉上面的键盘模式演示代码
     usbapp.set_id(0, 0xaabb, 0xccdd)    --改了默认VID和PID识别不了串口,但是HID和MSD还能用
     usbapp.hid_mode(0, 1, 8)       --自定义HID模式,ep_size=8,每次发送需要8的倍数,适合数据量较小的应用
     --usbapp.hid_mode(0, 1, 64)       --自定义HID模式,ep_size=64,每次发送需要64的倍数,适合数据量较大的应用