本帖最后由 香水城 于 2017-8-14 14:10 编辑
如何基于HID(MOUSE)例程生成一个可以输入输出任何长度小于等于64字节的例程
前言
本篇LAT的内容简介 如何应用ST USB HID(MOUSE)例程,生成一个可以输入和输出任何长度小于等于64字节的例程。
问题描述:
HID的运用在USB的运用中是最为广泛的,但是很多客户的应用并不是简单的鼠标或者键盘运用,而是客户自定义的一些应用,所以REPORT的定义往往跟鼠标或者键盘并不相同,因而客户常常基于我们的HID的例程进行修改。但是经常不能够修改成功。那么如何基于我们的例程生成一个可以输入输出任何长度小于等于64字节的例程?
代码修改:
第一步:
我们在usbd_hid_core.c中,找到配置描述进行修改。 首先增加一个OUT 端点。 同时将HID_IN_PACKET 和HID_OUT_PACKET长度修改为0x40
第二步:
修改报告描述符:请注意这两个report count 和report SIZE 的设定。
第三步:
修改HID CLASS 初始化代码:
注意这里两个地方:
1, USB FIFO的分配定义。
2, Usb ENDPOINT的使能,以及准备接收数据。
第四步:
修改发送函数, 注意不能一直往USB FIFO里面填充数据,一定要等上一次传输完成再填充。
最后:
我们一起来看看效果吧。我们可以清楚的看到MCU每毫秒都会发送64个字节的数据给到主机。
结论:
这个例程只是基于STM32F0系列的MCU进行的修改,你只要按照这四步很容易的移植到其它系列的MCU上。
对应PDF和代码:STM32F0x2_USB_FS_Device_Lib_V1.0.0hid less than 64byte
更多实战经验请看: 【ST MCU实战经验汇总贴】
|