首页
关于
Search
1
windows访问WSL出现\\wsl.localhost 无法访问
1,375 阅读
2
cmake配置cuda12.4+libtorch开发环境
743 阅读
3
[HYGUI开发] emoji绘制问题的解决
517 阅读
4
快速安装带有vnc的docker
492 阅读
5
基于ProtoAudio的语音录制/静音检测
485 阅读
默认分类
技术
杂谈
嵌入式开发
人工智能
HYGUI
记录
其他
登录
Search
回忆
累计撰写
16
篇文章
累计收到
4
条评论
首页
栏目
默认分类
技术
杂谈
嵌入式开发
人工智能
HYGUI
记录
其他
页面
关于
搜索到
2
篇与
的结果
2024-03-04
HID键盘与对应中断报文
概述在编写键盘固件时,理解如何注册设备并发送按键上报是至关重要的。常用的USB键盘通常采用WASD布局。下面将介绍如何实现HID键盘与对应中断报文的通信。设备注册想要想系统注册设备,首先需要了解一下 USB 的 HID 类中最重要的报告描述符。报告描述符定义了 USB 设备功能的数据格式和使用方法。USB中文网有专门的专题页对其进行讲解,推荐看看。USB官网HID报告描述符生成工具 - USB中文网 (usbzh.com)以下为我在瀚文75扩展中注册的虚拟键盘设备的报告描述符按键上报HID报文长度为8字节,我的报文增加了一个Report ID,所以是9字节,首字节固定为报告ID,也就是2uint8_t keyBoardData[9] = {2, 0, 0, 0, 0, 0, 0, 0};除掉报告首字节,第一个报表报文字节为附加按键状态第一个字节可以使用计算器或者位移计算例如:我想同时按下左CTRL+左GUI(WIN)+TAB那么第一位如下加上键扫描码0x2B(扫描代码大全见附录)最终发送uint8_t keyBoardData[9] = {2, 0x9, 0, 0x2B, 0, 0, 0, 0};键扫描码按键名称HID码(扫描码)十进制[十六进制]虚拟键码VK 十进制[十六进制]ESC41 [0X29]27 [0x1B]F158 [0X3a]112 [0x70]F259 [0X3b]113 [0x71]F360 [0X3c]114 [0x72]F461 [0X3d]115 [0x73]F562 [0X3e]116 [0x74]F663 [0X3f]117 [0x75]F764 [0X40]118 [0x76]F865 [0X41]119 [0x77]F966 [0X42]120 [0x78]F1067 [0X43]121 [0x79]F1168 [0X44]122 [0x7A]F1269 [0X45]123 [0x7B]Esc41 [0X29]27 [0x1B](回退)Back42 [0X2a]8 [0x08]Tab43 [0X2b]9 [0x09](大小写)CapLck57 [0X39]20 [0x14](回车)Enter40 [0X28]13 [0x0D](空格)Space44 [0X2c]32 [0x20]Scroll71 [0X47]145 [0x91](暂停)Pause72 [0X48]19 [0x13](插入)Insert73 [0X49]45 [0x2D](截屏)PrintScr70 [0X46]44 [0x2C](删除)Delete76 [0X4c]46 [0x2E](首页)Home74 [0X4a]36 [0x24](结尾)End77 [0X4d]35 [0x23](上一页)PageUp75 [0X4b]33 [0x21](下一页)PageDn78 [0X4e]34 [0x22](左)Left80 [0X50]37 [0x25](上)Up82 [0X52]38 [0x26](右)Right79 [0X4f]39 [0x27](下)Down81 [0X51]40 [0x28](小键盘0)Num098 [0X62]96 [0x60]Num189 [0X59]97 [0x61]Num290 [0X5a]98 [0x62]Num391 [0X5b]99 [0x63]Num492 [0X5c]100 [0x64]Num593 [0X5d]101 [0x65]Num694 [0X5e]102 [0x66]Num795 [0X5f]103 [0x67]Num896 [0X60]104 [0x68]Num997 [0X61]105 [0x69](加号)NumAdd87 [0X57]107 [0x6B](减号)NumSub86 [0X56]109 [0x6D](乘号)NumMult85 [0X55]106 [0x6A](除号)NumDiv84 [0X54]111 [0x6F](点)NumDecim99 [0X63]110 [0x6E](数字锁定键)NumLock83 [0X53]144 [0x90]Ctrl1 [0X01]17 [0x11](左CTR)LCtrl1 [0X01]162 [0xA2]RCtrl16 [0X10]163 [0xA3]Shift2 [0X02]16 [0x10]LShift2 [0X02]160 [0xA0]RShift32 [0X20]161 [0xA1]Alt4 [0X04]18 [0x12]LAlt4 [0X04]164 [0xA4]RAlt64 [0X40]165 [0xA5]WIN8 [0X08]91 [0x5B]LWIN8 [0X08]91 [0x5B]RWIN128 [0X80]92 [0x5C]A4 [0X04]65 [0x41]B5 [0X05]66 [0x42]C6 [0X06]67 [0x43]D7 [0X07]68 [0x44]E8 [0X08]69 [0x45]F9 [0X09]70 [0x46]G10 [0X0a]71 [0x47]H11 [0X0b]72 [0x48]I12 [0X0c]73 [0x49]J13 [0X0d]74 [0x4A]K14 [0X0e]75 [0x4B]L15 [0X0f]76 [0x4C]M16 [0X10]77 [0x4D]N17 [0X11]78 [0x4E]O18 [0X12]79 [0x4F]P19 [0X13]80 [0x50]Q20 [0X14]81 [0x51]R21 [0X15]82 [0x52]S22 [0X16]83 [0x53]T23 [0X17]84 [0x54]U24 [0X18]85 [0x55]V25 [0X19]86 [0x56]W26 [0X1a]87 [0x57]X27 [0X1b]88 [0x58]Y28 [0X1c]89 [0x59]Z29 [0X1d]90 [0x5A]039 [0X27]48 [0x30]130 [0X1e]49 [0x31]231 [0X1f]50 [0x32]332 [0X20]51 [0x33]433 [0X21]52 [0x34]534 [0X22]53 [0x35]635 [0X23]54 [0x36]736 [0X24]55 [0x37]837 [0X25]56 [0x38]938 [0X26]57 [0x39]
2024年03月04日
284 阅读
0 评论
0 点赞
2024-02-04
N2N搭建
搞了一个10端口的大带宽frp,又有远程串流游戏的需求,寻思着能借用N2N做穿透降低延迟.搞起~搭建N2N环境搭建# 服务器系统: Ubuntu20.04 # 前置需求: sudo apt install autoconf git clone https://github.com/ntop/n2n cd n2n ./autogen.sh ./configure make # 非root需要使用sudo install sudo make install 记得使用 supernode -hedge -h验证是否安装成功运行服务# 启动服务 # 记得打开服务器的10233端口 supernode -p 10233 -v -c community.list # community.list是一个包含虚拟局域网小组名称的文件列表 # 参见: https://bugxia.com/3334.html
2024年02月04日
277 阅读
0 评论
0 点赞