打印
[STM32]

一个基于STM32 HID例程生成不多于64字节传输的示范

[复制链接]
871|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
前言
本文简单介绍如何应用ST USB HID(MOUSE)例程生成一个可以输入和输出任何长度小于等于64字节的移植过程。

问题描述:
HID的在USB的运用中是非常广泛的,但是很多应用并不是简单的鼠标或者键盘操作,而是客户自定义的一些应用,所以REPORT的定义往往跟鼠标或者键盘并不相同,因而客户常常基于ST的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里面填充数据,一定要等上一次传输完成再填充。
USBD_HID_SendReport(&USB_Device_dev, Send_Buffer,HID_IN_PACKET);
最后我们一起来看看效果,可以清楚的看到MCU每毫秒都会发送64个字节的数据到主机。

结论:
这个例程只是基于STM32F0系列的MCU进行的修改,你只要按照这四步很容易地移植到其它系列MCU上。

相关帖子

沙发
攻城狮的守夜人| | 2016-8-16 14:26 | 只看该作者

使用特权

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

本版积分规则

个人签名:资深FAE工程师顾问群:499391543;微信公众号:融创芯城

120

主题

219

帖子

18

粉丝