STM32-USB-HID-device-MOUSE&keyboard(的一个关键参数)

STM32-USB-HID-device-MOUSE&keyboard(的一个关键参数)

网上已经有很多人都实现了一个USB复合多个设备。我也想做一个,目的是为了复活X220键盘并且增加一个轨迹球鼠标。因为我不喜欢双手离开键盘。

一些文献相对通俗或者细致的教了USB协议HID报文格式等

https://blog.csdn.net/zhoutaopower/article/details/82469665
https://blog.csdn.net/Britripe/article/details/111662665
什么是管道什么是管道的“端点”说通俗点是管子必然有“眼儿”。
什么是设备什么是 使用方式,使用方式扩展描述页。等等。
但我估计写完这篇文章我很快就会忘掉。除非——我逼自己再做点什么关于USB的东西。

当然还有一些文献手把手的教我怎么建立一个MX工程

https://blog.csdn.net/qq_21566881/article/details/127926484

最难能可贵的是一些具体到柴米油盐的的参考文献

虽然格式说的不清楚,但是人家代码是可以参考的。
https://blog.51cto.com/u_12956289/2917177
https://www.usbzh.com/article/detail-487.html:
https://cloud.tencent.com/developer/article/1652367
以上三篇文章都讲了通过,HID描述表的符合 来增加 鼠标设备到键盘设备中。这里不赘述。
鼠标键盘的复合方式有很多,一种是多interface的,一种是符合报文的。在参考文献中有提到。我懒而且笨所以选择后者。学会了另一种其实就更厉害了。可以做更复杂的复合。

但是很多帖子只把最难的地方给写了。我在参考学习的时候还有一个地方没改以至于虽然枚举成功了,但是却不能成功移动复合的鼠标。
/重点来了***/
关键就在于 "usbd_customhid.h"文件中的 输入(输入:是对于PC而言的,方向就是键盘到主机)
#define CUSTOM_HID_EPIN_SIZE 0x15U //02U
/重点走了***/
这里我想到要改了,键盘report17字节,鼠标4字节但,两个report都只用了不带头的16+3所以算成了0x13,于是也不好用。看到这篇(抱歉找不到了)以后他(他的cube模版可能比较老,名称都不一样但是咱前面学了点基础,指导EP是啥意思,哈哈哈哈哈,让我得瑟一会儿)改成了0x40,但,给了我信心。我就改成0x40,结果未知设备了。于是又改成0x20这回可以工作了。但是这个数字具体怎么算我现在也不是很清楚。但是 我按照带有头的计算方法就是17+4 = 0x15 。算出来是可以用的。

好了啰嗦到这。后续全都做好了以后,可能会发出来。或者update这篇帖子。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KiraHan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值