stm32f407 开启两路(FS和HS) Custom HID,与上位机通信偶尔中断
最近在stm32f407上使用两路custom hid(FS和HS)与上位机通信,遇到两个棘手的问题:1、在主程序中通过FS和HS周期给上位机发送数据,打开测试软件接收HS这一路数据,此时热插拔几次FS这一路线缆,可能会导致HS这一路数据中断。重新插入FS线缆,HS数据恢复。
2、插入FS和HS线缆,stm32f407一直保持上电,上位机多次重启,可能会出现上位机接收不到HS这一路数据。
这两个问题困扰我很久,包括网上搜索资料,请教同事,都没找到答案。
测试发现问题1时,HS一直是USB_BUSY状态无法恢复。我试着通过清发送缓冲区、清断点状态、延长发送时间,都无法解决这个问题。
以下是我的配置和部分代码:
(1)、MX配置界面:
!(data/attachment/forum/202403/15/231158tuwgbh4pgduq4ehc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "5b963315de8a3aef9e928021f099e9c.png")
!(data/attachment/forum/202403/15/231214fzg24v22xxxsfw2e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "eb7b547bc5196196b9cca98e801d710.png")
中断配置为默认配置。
(2)、程序配置代码:
报告描述符:
!(data/attachment/forum/202403/15/231321rvbljxg5alx5btxs.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "181ede212569a36cf56bf08cde868d6.png")
宏定义长度:
!(data/attachment/forum/202403/15/231353cy776vy6sr6jo6o3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "821decc84a16b57a63f9bec16f1e61a.png")
!(data/attachment/forum/202403/15/231408ss2v26jc6v6ogsjs.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "e2be49035657a69569e065dde32c7b5.png")
主程序代码:
!(data/attachment/forum/202403/15/231434s6fbvktdt4jgwjkv.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "fbf78301c6e1988844ce2569a293145.png")
异常处理代码:
!(data/attachment/forum/202403/15/231510yvg5jt54jeu5jplg.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "25aeaa2f80605a1b918ee71417e5e83.png")
请大家帮忙看下,是什么原因导致出现这种问题,帮忙解答一下。感激不尽。
1. Class data 是不是共用了一个 ? 应该分开用
2. USBD_DEBUG_LEVEL2 通过串口打印出USB 信息来进一步分析。
页:
[1]