你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 USB HID 为什么能收发65字节

[复制链接]
a707083746 提问时间:2018-11-29 11:29 /
我在做一个USB HID设备,端点1作为发送和接收,最大长度都设置为64,但是在监视软件上却能看到65字节。而且STM在发完IN数据后就进入错误中断HardFaultException。这是什么原因啊?为什么OUT 和IN的数据会发两次,第二次多一个00
STM32_USB_InOut.png

评分

参与人数 1 ST金币 +20 收起 理由
STMCU + 20

查看全部评分

收藏 评论9 发布时间:2018-11-29 11:29

举报

9个回答
toofree 回答时间:2018-11-29 12:39:34
这个得看程序吧。你给的信息太有限了
有没有发现,你的两组OUT和两组IN,有个相同的现象。
第二次的OUT开头多了一个字节00,所有数据向后错位了一个字节。
设备号不同,一个是55,一个是54.1

评分

参与人数 1ST金币 +6 蝴蝶豆 +3 收起 理由
STMCU + 6 + 3

查看全部评分

a707083746 回答时间:2018-11-29 14:08:46
toofree 发表于 2018-11-29 12:39
这个得看程序吧。你给的信息太有限了
有没有发现,你的两组OUT和两组IN,有个相同的现象。
第二次的OUT开头 ...

谢谢,发现了。就是看到数据是65个字节的有点奇怪。。。
流水源 回答时间:2018-11-29 14:20:04
你那55应该是54的子层级设备。55的多1个字节应该是USBHID默认值为0的报告ID。这个估计是上层软件驱动自己加的。54.1后面的1是端点1发送的实际数据

评分

参与人数 1ST金币 +5 蝴蝶豆 +2 收起 理由
STMCU + 5 + 2

查看全部评分

a707083746 回答时间:2018-11-29 14:52:11
流水源 发表于 2018-11-29 14:20
你那55应该是54的子层级设备。55的多1个字节应该是USBHID默认值为0的报告ID。这个估计是上层软件驱动自己加 ...

HID设备.png
谢谢 原来是这样。看来我的硬件错误是别的原因造成的。执行SetEPTxStatus(ENDP1, EP_TX_VALID);发送后就死机了。。。
流水源 回答时间:2018-11-29 14:59:42
硬件错误很可能是你的USB发送缓冲区配置不对,导致内存溢出造成的
a707083746 回答时间:2018-11-29 15:32:12
流水源 发表于 2018-11-29 14:59
硬件错误很可能是你的USB发送缓冲区配置不对,导致内存溢出造成的

我再看看
jyl518-283289 回答时间:2018-11-29 16:59:04
驱动不对,再详细检查下。
a707083746 回答时间:2018-11-29 18:42:25
jyl518-283289 发表于 2018-11-29 16:59
驱动不对,再详细检查下。

lanmanck 回答时间:2020-3-28 16:17:18
是65字节啊,有个叫report id
关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版