| 
 
| 前言 本文简单介绍如何应用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上。
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?注册 
  |