打印
[信息]

【实战经验】如何基于HID(MOUSE)例程生成一个可以输入输出...

[复制链接]
918|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 香水城 于 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实战经验汇总贴】


沙发
mmuuss586| | 2016-8-9 10:16 | 只看该作者
谢谢分享;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:STM32技术专家

596

主题

17066

帖子

283

粉丝