STM32 F4复合usb设备,具有2个大容量接口,FIFO配置正确

STM32 F4复合usb设备,具有2个大容量接口,FIFO配置正确,usb,device,stm32f4,Usb,Device,Stm32f4,我使用STM32CubeMX版本4.22生成MSC usb设备,并将其修改为具有2个自定义批量接口。接口0具有2个传入和传出的批量终结点。接口1有两个备用设置。Alt设置0具有0个端点,Alt设置1具有2个传入和传出的批量端点 端点定义为: 在0x81中定义接口0 定义接口0_OUT_EP 0x01 在_EP 0x82中定义接口1_ 定义接口1\u OUT\u EP 0x02 我的设备枚举良好,接口0正常工作。主机发送Set接口1、Alt设置1请求,然后我激活接口1端点(0x82和0x02) 接

我使用STM32CubeMX版本4.22生成MSC usb设备,并将其修改为具有2个自定义批量接口。接口0具有2个传入和传出的批量终结点。接口1有两个备用设置。Alt设置0具有0个端点,Alt设置1具有2个传入和传出的批量端点

端点定义为:

在0x81中定义接口0 定义接口0_OUT_EP 0x01 在_EP 0x82中定义接口1_ 定义接口1\u OUT\u EP 0x02 我的设备枚举良好,接口0正常工作。主机发送Set接口1、Alt设置1请求,然后我激活接口1端点(0x82和0x02)

接口1未按预期工作,我确信这与我的FIFO设置有关。我收到INTERFACE1_OUT_EP的dataOut调用,但当我尝试写入INTERFACE1_IN_EP时,主机仅返回3个字节,而我正在写入24个字节。在这个事务之后,我立即得到接口1端点的明确特性请求

以下是我当前的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,20x40)// STM32中只有0x140 x 4(=1280字节)可用于USB FIFO。
但是您使用的是0x180(=c0+40+80)x 4(=1536字节)。

很抱歉,我使用的是STM32F412,FS usb,内部物理数据包的最大大小为64