脱离单片机C零门槛DIY一个USB HID虚拟键盘

96 篇文章 0 订阅
67 篇文章 0 订阅

C1 自带 USB 虚拟键盘

本教程来至 FlexLua 官网 ShineBlink 开发板教程,即使不懂单片机开发也可很容易用FlexLua零门槛开发各种 IoT 硬件。

注意:本教程仅适合 C1,不适合C2,因为 C2 不带 USB HID 。

一、实现功能

将Core USB 口虚拟成键盘设备,通过USB线连接电脑后,每隔5秒Core会模拟如下的一系列按键动作:

  1. win+r,唤出“运行”对话框
  2. n o t e p a d ,输入"notepad"并回车,唤出记事本文本
  3. h e l l o w o r l d . . ,在记事本输入"hello word.."文本。


二、完整代码

注意: 如果你的项目中同时用到Ble蓝牙功能时,一定要先初始化Ble蓝牙之后,再调用LIB_UsbConfig函数初始化USB功能。

--先配置USB口以USB键盘模式工作
LIB_UsbConfig("KBD")
--开始大循环
while(GC(1) == true)
do
LIB_DelayMs(5000)
--模拟键盘组合按键WIN+R调出运行界面效果
combine_tab = {"GUI","R"}
LIB_UsbKbdSend("COMBINE", combine_tab)LIB_DelayMs(200)
--模拟键盘输入notepad和回车键效果,来创建记事本文本文件
single_tab = {"N","O","T","E","P","A","D","ENTER"}
LIB_UsbKbdSend("SINGLE", single_tab)
LIB_DelayMs(500)
--模拟键盘在记事本文件上打出hello world..效果
single_tab = {"H","E","L","L","O","SPACEBAR","W","O","R","L","D","DOT","DOT"}
LIB_UsbKbdSend("SINGLE", single_tab)
end


如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

如果你想查询电脑的CapsLock和NumLock指示灯状态,可以通过函数LIB_UsbKbdCapsLockAndNumLockQuery()来查询

三、演示结果图

f7da8f3a422cf57ed83ab05979e8db82.jpeg

四、附录:键盘标识符

键盘标识 HID码
"A", = 4, /**<KBD_A code*/
"B", = 5, /**<KBD_B code*/
"C", = 6, /**<KBD_C code*/
"D", = 7, /**<KBD_D code*/
"E", = 8, /**<KBD_E code*/
"F", = 9, /**<KBD_F code*/
"G", = 10, /**<KBD_G code*/
"H", = 11, /**<KBD_H code*/
"I", = 12, /**<KBD_I code*/
"J", = 13, /**<KBD_J code*/
"K", = 14, /**<KBD_K code*/
"L", = 15, /**<KBD_L code*/
"M", = 16, /**<KBD_M code*/
"N", = 17, /**<KBD_N code*/
"O", = 17, /**<KBD_N code*/
"P", = 19, /**<KBD_P code*/
"Q", = 20, /**<KBD_Q code*/
"R", = 21, /**<KBD_R code*/
"S", = 22, /**<KBD_S code*/
"T", = 23, /**<KBD_T code*/
"U", = 24, /**<KBD_U code*/
"V", = 25, /**<KBD_V code*/
"W", = 26, /**<KBD_W code*/
"X", = 27, /**<KBD_X code*/
"Y", = 28, /**<KBD_Y code*/
"Z", = 29, /**<KBD_Z code*/
"1", = 30, /**<KBD_1 code*/
"2", = 31, /**<KBD_2 code*/
"3", = 32, /**<KBD_3 code*/
"4", = 33, /**<KBD_4 code*/
"5", = 34, /**<KBD_5 code*/
"6", = 35, /**<KBD_6 code*/
"7", = 36, /**<KBD_7 code*/
"8", = 37, /**<KBD_8 code*/
"9", = 38, /**<KBD_9 code*/
"0", = 39, /**<KBD_0 code*/
"ENTER", = 40, /**<KBD_ENTER code*/
"ESCAPE", = 41, /**<KBD_ESCAPE code*/
"BACKSPACE", = 42, /**<KBD_BACKSPACE code*/
"TAB", = 43, /**<KBD_TAB code*/
"SPACEBAR", = 44, /**<KBD_SPACEBAR code*/
"UNDERSCORE", = 45, /**<KBD_UNDERSCORE code*/
"PLUS", = 46, /**<KBD_PLUS code*/
"OPEN_BRACKET", = 47, /**<KBD_OPEN_BRACKET code*/
"CLOSE_BRACKET", = 48, /**<KBD_CLOSE_BRACKET code*/
"BACKSLASH", = 49, /**<KBD_BACKSLASH code*/
"ASH", = 50, /**<KBD_ASH code*/
"COLON", = 51, /**<KBD_COLON code*/
"QUOTE", = 52, /**<KBD_QUOTE code*/
"TILDE", = 53, /**<KBD_TILDE code*/
"COMMA", = 54, /**<KBD_COMMA code*/
"DOT", = 55, /**<KBD_DOT code*/
"SLASH", = 56, /**<KBD_SLASH code*/
"CAPS_LOCK", = 57, /**<KBD_CAPS_LOCK code*/
"F1", = 58, /**<KBD_F1 code*/
"F2", = 59, /**<KBD_F2 code*/
"F3", = 60, /**<KBD_F3 code*/
"F4", = 61, /**<KBD_F4 code*/
"F5", = 62, /**<KBD_F5 code*/
"F6", = 63, /**<KBD_F6 code*/
"F7", = 64, /**<KBD_F7 code*/
"F8", = 65, /**<KBD_F8 code*/
"F9", = 66, /**<KBD_F9 code*/
"F10," = 67, /**<KBD_F10 code*/
"F11," = 68, /**<KBD_F11 code*/
"F12," = 69, /**<KBD_F12 code*/
"PRINTSCREEN", = 70, /**<KBD_PRINTSCREEN code*/
"SCROLL_LOCK", = 71, /**<KBD_SCROLL_LOCK code*/
"PAUSE", = 72, /**<KBD_PAUSE code*/
"INSERT", = 73, /**<KBD_INSERT code*/
"HOME", = 74, /**<KBD_HOME code*/
"PAGEUP", = 75, /**<KBD_PAGEUP code*/
"DELETE", = 76, /**<KBD_DELETE code*/
"END", = 77, /**<KBD_END code*/
"PAGEDOWN", = 78, /**<KBD_PAGEDOWN code*/
"RIGHT", = 79, /**<KBD_RIGHT code*/
"LEFT", = 80, /**<KBD_LEFT code*/
"DOWN", = 81, /**<KBD_DOWN code*/
"UP", = 82, /**<KBD_UP code*/
"KEYPAD_NUM_LOCK", = 83, /**<KBD_KEYPAD_NUM_LOCK code*/
"KEYPAD_DIVIDE", = 84, /**<KBD_KEYPAD_DIVIDE code*/
"KEYPAD_MULTIPLY", = 85, /**<KBD_KEYPAD_MULTIPLY code*/
"KEYPAD_MINUS", = 86, /**<KBD_KEYPAD_MINUS code*/
"KEYPAD_PLUS", = 87, /**<KBD_KEYPAD_PLUS code*/
"KEYPAD_ENTER", = 88, /**<KBD_KEYPAD_ENTER code*/
"KEYPAD_1", = 89, /**<KBD_KEYPAD_1 code*/
"KEYPAD_2", = 90, /**<KBD_KEYPAD_2 code*/
"KEYPAD_3", = 91, /**<KBD_KEYPAD_3 code*/
"KEYPAD_4", = 92, /**<KBD_KEYPAD_4 code*/
"KEYPAD_5", = 93, /**<KBD_KEYPAD_5 code*/
"KEYPAD_6", = 94, /**<KBD_KEYPAD_6 code*/
"KEYPAD_7", = 95, /**<KBD_KEYPAD_7 code*/
"KEYPAD_8", = 96, /**<KBD_KEYPAD_8 code*/
"KEYPAD_9", = 97, /**<KBD_KEYPAD_9 code*/
"KEYPAD_0", = 98, /**<KBD_KEYPAD_0 code*/

  • 13
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值