stm32 usb hid 移植时出现的问题及解决办法(记录)

由于项目需要,使用了stm32f107的芯片,移植了STM32_USB-Host-Device_Lib_V2.2.0 官方usb固件库,在UCOSII上运行,刚开始使用的是STM32_USB-FS-Device_Lib_V2.3.0的库,这个库网上资源较多,但是在使用的时候发现这个库和UCOSII的延时函数有冲突,导致ucos操作系统不能正常运行,经过调试没有发现原因,调试期间在st官网找到了最新的固件库STM32_USB-Host-Device_Lib_V2.2.0,于是移植过来使用,发现UCOS操作系统正常运行,官方提供的例程使用了端点1作为数据输入输出,我想改成端点1输入,端点2输出,通过查看 官网的库用户文档CD00289278.pdf找到了修改方法,因为我是使用的 customhid的例程,所以以下的修改适用于customhid例程,修改注意这些文件

usbd_conf.h  , usb_conf.h , usbd_customhid_core.c

其中 usbd_conf.h  修改 如下宏定义

#define HID_IN_EP                    0x81        设备->主机    0x8x       表示IN端点x
#define HID_OUT_EP                0x02        主机->设备    0x0x       表示OUT端点x  

#define HID_IN_PACKET                64       IN包长度
#define HID_OUT_PACKET            64       OUT包长度

usb_conf.h  修改   如下宏定义

 #define RX_FIFO_FS_SIZE                          128       接收FIFO长度
 #define TX0_FIFO_FS_SIZE                          64       发送端点0FIFO长度
 #define TX1_FIFO_FS_SIZE                          64       发送端点1FIFO长度
 #define TX2_FIFO_FS_SIZE                          64       发送端点2FIFO长度
 #define TX3_FIFO_FS_SIZE                          64       发送端点3FIFO长度

usbd_customhid_core.c修改

1:修改配置描述符,如果要实现自定义双向通信还要修改报告描述符(参考了圈圈的书)

下面是我实现双向通信的配置描述符和报告描述符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值