各位大侠:msc+cdc复合设备,必须用IAD描述吗? 初始化: void MX_USB_DEVICE_Init(void) { /* Init Device Library,Add Supported Class and Start the library*/ USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS); // USBD_RegisterClass(&hUsbDeviceFS, &USBD_MSC_CDC_cb); // USBD_RegisterClass(&hUsbDeviceFS, &USBD_MSC); // USBD_MSC_RegisterStorage(&hUsbDeviceFS, &USBD_Storage_Interface_fops_FS); // USBD_Start(&hUsbDeviceFS); USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC); USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS); USBD_Start(&hUsbDeviceFS); } 与类相关的初始化怎么使用? |
F407不能实现这个吗? |
做USB复合设备时,首先你得自己写一个自定义的CDC+MSC复合类,按USBD_ClassTypeDef定义的格式,初始化就在这个结构体的第一个成员,它是在枚举时,当收到主机SetConfiguration消息时由USB内核函数USBD_SetClassConfig()来启动这个复合类的初始化的。 |