|
各位大佬好~ 小弟刚开始摸索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的配置就有点怪。代码片段如下:
就是红框中的这行,为什么这里配置的是端点1的发送count,而不是端点2? 非常感谢各位大佬的任何热心回答~ 谢谢 |
中断服务程序抖动
STM32L562DK探索板——如何启用蓝牙功能?
自己写驱动深入学习与调用Hal库的取舍
STM32F407全速USB 回复 STALL 握手包
USB_WritePacket 陷入无限循环
关于最近学习C语言回调和钩子函数的想法,以及对HAL库回调函数的困惑
STM32 上同时跑 LWIP 的 TCP 与 UDP 连接
STM32F405RG VCP 报错This device cannot start (code 10)
在擦除flash时 同时挂起中断 是否会造成卡死以及相关的卡死机制
STM32F401RBT6 USB 大容量存储设备问题
微信公众号
手机版
那下面那句,将端点2的发送地址设置到端点1的tx地址上是不是也不太对?
SetEPTxAddr(ENDP2, ENDP1_TXADDR);
因为根据定义:
define ENDP1_TXADDR (0x118)
define ENDP1_RXADDR (0x11C)
这样看,端点1的TX地址后面只有4个字节就是TX1的接收地址了,这个长度也是明显不足64的,否则数据就串了。似乎也应该是ENDP2_TXADDR才是正确的。
/* 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)