【发布时间】:2018-02-01 18:25:57
【问题描述】:
我使用 STM32CubeMX 4.22 版生成 MSC usb 设备,并将其修改为具有 2 个自定义批量接口。接口 0 有 2 个 BULK 端点 IN 和 OUT。接口 1 有两个备用设置。 Alt Setting 0 有 0 个端点,Alt Setting 1 有 2 个 BULK 端点 IN 和 OUT。
端点定义为:
定义 INTERFACE0_IN_EP 0x81
定义 INTERFACE0_OUT_EP 0x01
定义 INTERFACE1_IN_EP 0x82
定义 INTERFACE1_OUT_EP 0x02
我的设备枚举正常,并且接口 0 按预期工作。主机发送设置接口 1、替代设置 1 请求,然后我激活接口 1 端点(0x82 和 0x02)。
接口 1 未按预期工作,我确信它与我的 FIFO 设置有关。我收到了 INTERFACE1_OUT_EP 的 dataOut 调用,但是当我尝试写入 INTERFACE1_IN_EP 时,主机只得到 3 个字节,而我正在写入 24 个字节。在此事务之后,我立即收到接口 1 端点的 CLEAR FEATURE 请求。
这是我当前的 FIFO 设置: HAL_PCDEx_SetRxFiFo(&hpcd_USB_OTG_FS, 0xC0); //80 HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 0, 0x40); //EP0 HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 1, 0x80); //EP1
HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 2, 0x40); //
请帮助我正确配置这些 FIFO 设置,以便第二个接口也可以按预期工作。
【问题讨论】:
-
抱歉忘了提,我使用的是STM32F412,FS usb,内部物理,最大数据包大小为64