当前位置:   article > 正文

stm32实现hid键盘_stm32 hid键盘

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

 

  1. /*
  2. * buffer[0] - bit0: Left CTRL
  3. *           -bit1: Left SHIFT
  4. *           -bit2: Left ALT
  5. *           -bit3: Left GUI(win)
  6. *           -bit4: Right CTRL
  7. *           -bit5: Right SHIFT
  8. *           -bit6: Right ALT
  9. *           -bit7: Right GUI ()
  10. * buffer[1] - Padding = Always 0x00
  11. * buffer[2] - Key 1
  12. * buffer[3] - Key 2
  13. * buffer[4] - Key 3
  14. * buffer[5] - Key 4
  15. * buffer[6] - Key 5
  16. * buffer[7] - Key 6
  17. */
  18. /*修改usbd_hid.c中的报告设备描述符*/
  19. __ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] __ALIGN_END =
  20. {
  21. 0x05, 0x01, // USAGE_PAGE (Generic Desktop) //63
  22. 0x09, 0x06, // USAGE (Keyboard)
  23. 0xa1, 0x01, // COLLECTION (Application)
  24. 0x05, 0x07, // USAGE_PAGE (Keyboard)
  25. 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl)
  26. 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI)
  27. 0x15, 0x00, // LOGICAL_MINIMUM (0)
  28. 0x25, 0x01, // LOGICAL_MAXIMUM (1)
  29. 0x75, 0x01, // REPORT_SIZE (1)
  30. 0x95, 0x08, // REPORT_COUNT (8)
  31. 0x81, 0x02, // INPUT (Data,Var,Abs)
  32. 0x95, 0x01, // REPORT_COUNT (1)
  33. 0x75, 0x08, // REPORT_SIZE (8)
  34. 0x81, 0x03, // INPUT (Cnst,Var,Abs)
  35. 0x95, 0x05, // REPORT_COUNT (5)
  36. 0x75, 0x01, // REPORT_SIZE (1)
  37. 0x05, 0x08, // USAGE_PAGE (LEDs)
  38. 0x19, 0x01, // USAGE_MINIMUM (Num Lock)
  39. 0x29, 0x05, // USAGE_MAXIMUM (Kana)
  40. 0x91, 0x02, // OUTPUT (Data,Var,Abs)
  41. 0x95, 0x01, // REPORT_COUNT (1)
  42. 0x75, 0x03, // REPORT_SIZE (3)
  43. 0x91, 0x03, // OUTPUT (Cnst,Var,Abs)
  44. 0x95, 0x06, // REPORT_COUNT (6)
  45. 0x75, 0x08, // REPORT_SIZE (8)
  46. 0x15, 0x00, // LOGICAL_MINIMUM (0)
  47. 0x25, 0x65, // LOGICAL_MAXIMUM (101)
  48. 0x05, 0x07, // USAGE_PAGE (Keyboard)
  49. 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated))
  50. 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application)
  51. 0x81, 0x00, // INPUT (Data,Ary,Abs)
  52. 0xc0,       // END_COLLECTION
  53. };
  54. #include “usbd_hid.h” 文件中的申明文件,修改一下。
  55. #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日

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/882435
推荐阅读
相关标签
  

闽ICP备14008679号