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) //63

0x09, 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日

相关推荐

  1. STM32 库函数 3*4矩阵键盘

    2024-04-20 20:22:04       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 20:22:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 20:22:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 20:22:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 20:22:04       20 阅读

热门阅读

  1. 完全平方数

    2024-04-20 20:22:04       13 阅读
  2. excel试题转word格式

    2024-04-20 20:22:04       12 阅读
  3. 【torch学习】torch.utils.data

    2024-04-20 20:22:04       12 阅读
  4. OWASP发布十大开源软件安全风险清单

    2024-04-20 20:22:04       13 阅读
  5. Prompt学习笔记(一)

    2024-04-20 20:22:04       15 阅读
  6. Kafka

    2024-04-20 20:22:04       11 阅读
  7. .NET Core 中的 ORM 框架对比

    2024-04-20 20:22:04       13 阅读
  8. php 生成一段随机的 字符串 可以设置数字字符

    2024-04-20 20:22:04       15 阅读
  9. 牛x之路 Day 0

    2024-04-20 20:22:04       13 阅读
  10. Google Coolab 和 Google Earth 上的 NDVI 计算

    2024-04-20 20:22:04       12 阅读
  11. 网卡接收数据的关键过程

    2024-04-20 20:22:04       14 阅读
  12. jvm内存调优工具概览 jps、jstat、jinfo、jmap、jstack

    2024-04-20 20:22:04       13 阅读
  13. 【rust简单工具理解】

    2024-04-20 20:22:04       15 阅读