USB的MSD模式和FatFS在操作SD卡,让他们互斥就好了

usb初始化

static USBHALStruct        s_usbHAL;
static USBDeviceStruct     s_usbDevice;
static InterfaceMSDStruct  s_usbMSD;
void usb_msd_init(void)
{
	USBHALStruct*    hal    = &s_usbHAL;
	USBDeviceStruct* device = &s_usbDevice;
	uint32_t         t0 = xTaskGetTickCount();

	/* 设置 USB 中断优先级(见 USB_MSD_IRQ_PRIORITY 注释) */
	NVIC_SetPriority(USB_ZOFFY1_IRQ, USB_MSD_IRQ_PRIORITY);
	NVIC_DisableIRQ(USB_ZOFFY1_IRQ);
	NVIC_ClearPendingIRQ(USB_ZOFFY1_IRQ);

	/* USB HAL 初始化 */
	USBCoreZoffyConstractor(hal, USB_ZOFFY1_BASE);
	hal->Init(hal);

	/* USB 设备描述 */
	USBDeviceConstractor(device);
	device->Manufacturer      = L"JW02";
	device->Product           = L"JW02 Photo U-Disk";
	device->ConfigurationName = L"Default";
	device->MaxPower          = 100;                    /* 100mA */
	device->Attributes.SelfPowered = true;

	/* 固定序列号 */
	s_usbSerialNumber[0] = 'J'; s_usbSerialNumber[1] = 'W';
	s_usbSerialNumber[2] = '0'; s_usbSerialNumber[3] = '2';
	s_usbSerialNumber[4] = 'U'; s_usbSerialNumber[5] = 'D';
	s_usbSerialNumber[6] = '0'; s_usbSerialNumber[7] = 0;
	device->SerialNumber = s_usbSerialNumber;

	device->Init(device, hal, 0x0D28, 0xCCDD, 0x0001);

	usbMSDSetup(device);

	device->Start(device);
	printf("[USB] MSD init OK, total=%lums\n",
	         (unsigned long)(xTaskGetTickCount() - t0));

	/* 保存 device 指针供 UsbMsd_Poll() 查询枚举态(U盘模式互斥信任源) */
	s_usbDev = device;
}