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

USB端点配置疑惑

[复制链接]
雨中纵歌 提问时间:2023-10-7 09:37 / 已解决

各位大佬好~

小弟刚开始摸索STM32,结合工作方向,正在学习USB部分,看到STM32_USB-FS-Device_Lib_V4.1.0这个USB库的pack,这个里面的示例有个地方看不明白了。

具体位置是:STM32_USB-FS-Device_Lib_V4.1.0\Projects\Composite_Examples\MSC_HID_Composite这个例子。在这个例子的usb-prop.c中的CustomHID_Reset函数中,这里面是对USB端点的配置,但是里面对Endpoint 2 IN的配置就有点怪。代码片段如下:

1696642339136.png

就是红框中的这行,为什么这里配置的是端点1的发送count,而不是端点2?

非常感谢各位大佬的任何热心回答~

谢谢

1696642339136.png
收藏 评论3 发布时间:2023-10-7 09:37

举报

3个回答
xmshao 最优答案 回答时间:2023-10-7 10:26:41
我刚才下载了相关软件包查看了。个人认为红框这个地方是个笔误bug,应该是端点2,这几行都是对端点2进行配置。何况,对于端点1在上面刚做过相似配置。
雨中纵歌 回答时间:2023-10-7 11:32:39

xmshao 发表于 2023-10-7 10:26
我刚才下载了相关软件包查看了。个人认为红框这个地方是个笔误bug,应该是端点2,这几行都是对端点2进行配 ...

那下面那句,将端点2的发送地址设置到端点1的tx地址上是不是也不太对?

SetEPTxAddr(ENDP2, ENDP1_TXADDR);

因为根据定义:

define ENDP1_TXADDR (0x118)

define ENDP1_RXADDR (0x11C)

这样看,端点1的TX地址后面只有4个字节就是TX1的接收地址了,这个长度也是明显不足64的,否则数据就串了。似乎也应该是ENDP2_TXADDR才是正确的。

xmshao 回答时间:2023-10-7 12:46:41
认同你的分析。


/* EP2  *//* tx buffer base address */
#define ENDP2_TXADDR        (0x98)
/* Rx buffer base address */
#define ENDP2_RXADDR        (0xD8)


/* EP1  */
tx buffer base address
#define ENDP1_TXADDR        (0x118)
#define ENDP1_RXADDR        (0x11C)

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版