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

stm32实现hid键盘

 前面的cubelmx项目配置参考

stm32实现hid鼠标-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/anlog/article/details/137814494?spm=1001.2014.3001.5502两个项目的配置完全相同。

代码

引用

键盘代码:

替换hid设备描述符

先屏蔽鼠标设备描述符

替换为键盘设备描述符

修改宏定义

 修改大小为63U

 运行后如下图

参考链接

参考宝藏ub主

3分钟,教会你做键盘。使用STM32 USB的HID 方式制作一个键盘_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1dA4m1c7VE/?spm_id_from=333.999.0.0&vd_source=e821a225c7ba4a7b85e5aa6d013ac92e

HID键盘设备 - 哔哩哔哩 (bilibili.com)icon-default.png?t=N7T8https://www.bilibili.com/read/cv33532705/?spm_id_from=333.999.0.0

 

/** buffer[0] - bit0: Left CTRL*           -bit1: Left SHIFT*           -bit2: Left ALT*           -bit3: Left GUI(win)*           -bit4: Right CTRL*           -bit5: Right SHIFT*           -bit6: Right ALT*           -bit7: Right GUI ()* buffer[1] - Padding = Always 0x00* buffer[2] - Key 1* buffer[3] - Key 2* buffer[4] - Key 3* buffer[5] - Key 4* buffer[6] - Key 5* buffer[7] - Key 6*//*修改usbd_hid.c中的报告设备描述符*/__ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] __ALIGN_END ={0x05, 0x01, // USAGE_PAGE (Generic Desktop) //630x09, 0x06, // USAGE (Keyboard)0xa1, 0x01, // COLLECTION (Application)0x05, 0x07, // USAGE_PAGE (Keyboard)0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl)0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI)0x15, 0x00, // LOGICAL_MINIMUM (0)0x25, 0x01, // LOGICAL_MAXIMUM (1)0x75, 0x01, // REPORT_SIZE (1)0x95, 0x08, // REPORT_COUNT (8)0x81, 0x02, // INPUT (Data,Var,Abs)0x95, 0x01, // REPORT_COUNT (1)0x75, 0x08, // REPORT_SIZE (8)0x81, 0x03, // INPUT (Cnst,Var,Abs)0x95, 0x05, // REPORT_COUNT (5)0x75, 0x01, // REPORT_SIZE (1)0x05, 0x08, // USAGE_PAGE (LEDs)0x19, 0x01, // USAGE_MINIMUM (Num Lock)0x29, 0x05, // USAGE_MAXIMUM (Kana)0x91, 0x02, // OUTPUT (Data,Var,Abs)0x95, 0x01, // REPORT_COUNT (1)0x75, 0x03, // REPORT_SIZE (3)0x91, 0x03, // OUTPUT (Cnst,Var,Abs)0x95, 0x06, // REPORT_COUNT (6)0x75, 0x08, // REPORT_SIZE (8)0x15, 0x00, // LOGICAL_MINIMUM (0)0x25, 0x65, // LOGICAL_MAXIMUM (101)0x05, 0x07, // USAGE_PAGE (Keyboard)0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated))0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application)0x81, 0x00, // INPUT (Data,Ary,Abs)0xc0,       // END_COLLECTION};#include “usbd_hid.h” 文件中的申明文件,修改一下。#define HID_MOUSE_REPORT_DESC_SIZE    63U 

HID Usages and Descriptions (gitee.com)icon-default.png?t=N7T8https://gitee.com/siyu233/Stm32Code_1/raw/master/USB_HID_keyboard/hut1_HID_22.pdf

 

 

 

 

 学习过程

特此记录

anlog

2024年4月16日

http://www.lryc.cn/news/340208.html

相关文章:

  • 【单例模式】饿汉式、懒汉式、静态内部类--简单例子
  • windows关闭Windows Search功能
  • 政安晨:【深度学习神经网络基础】(九)—— 在深度学习神经网络反向传播训练中理解梯度
  • 免费的 ChatGPT、GPTs、AI绘画(国内版)
  • UniApp 微信小程序:在 onLaunch 中等待异步方法执行完成后,再调用页面中的接口
  • 【招贤纳士】长期有效
  • 华为配置静态ARP示例
  • LRTimelapse for Mac:专业延时摄影视频制作利器
  • Java复习第十九天学习笔记(Cookie、Session登录),附有道云笔记链接
  • HBase的数据模型与架构
  • 卷积神经网络的结构组成与解释(详细介绍)
  • 使用ansible的连通性检查的关键参数
  • Jenkins用maven风格build报错解决过程记录
  • Web3.0与AI的交融:开启智能互联网新时代
  • 自动化_Ansible学习笔记
  • 用于密集视觉冲击的紧凑三维高斯散射Compact 3D Gaussian Splatting For Dense Visual SLAM
  • ChatGPT揭秘:高效论文写作的秘籍
  • 电脑不能上网,宽带调制解调器出现问题如何处理
  • 云计算: OVN 集群 部署分布式交换机
  • electron+Vue3构建桌面应用之IPC通讯
  • html球体涨水
  • ubuntu手动编译opencv 4.9.0遇到的问题汇总
  • SEO之搜索引擎的工作原理(三)
  • 开发语言漫谈-python
  • JVM指令收集
  • 小程序解析二维码:jsQR
  • 【verilog 设计】 reg有没有必要全部赋初值?
  • NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
  • php开发中如何防止抓包工具伪造请求
  • 密码学 | 椭圆曲线数字签名方法 ECDSA(下)