我有问题、找不到解决方案。
首先、我制作了一个 USB+SDCard 读取器项目(带有 fatfs)用于测试、然后在 launchpad 上进行了闪存。
Windows 将检测到大约5秒的新器件、它的工作效果非常完美。
然后、我在自己的板上使用了相同的项目。
Windows 会检测到大约30秒的新设备、它的工作效果非常完美。
这不是硬件问题、因为它与 LaunchPad 相同。
有任何提示吗?
我的初始化代码是:
void USB_MSC_Initialize (void) { USBIntRegister (USB0_BASE、USB0DeviceIntHandler); //USBIntEnableControl (USB0_BASE、USB_INTCTRL_ALL); //ROM_IntPrioritySet (USB0_BASE、0x00); // //将 USB 堆栈模式设置为不带 VBUS 监控的设备模式。 // USBStackModeSet (0、eUSBModeForceDevice、0); // //将我们的器件信息传递到 USB 库并放置器件 //在总线上。 // USBDMSCInit (0、(tUSBDMSCDevice*)&g_sMSCDevice); } void USB_MSC_Config (void) { // //配置和启用 UDMA // ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UDMA); ROM_SysCtlDelay (10); ROM_uDMAControlBaseSet (&sDMAControlTable[0]); ROM_uDMAEnable(); // //启用外设时钟 // ROM_SysCtlPeripheralEnable (SYSCTL_Periph_USB0); ROM_SysCtlUSBPLLEnable(); ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD); ROM_SysCtlDelay (10); // //为 USB0 USB0DP 启用引脚 PD5 // ROM_GPIOPinTypeUSBAnalog (GPIO_PORTD_BASE、GPIO_PIN_5); // //针对 USB0 USB0DM 的使能引脚 PD4 // ROM_GPIOPinTypeUSBAnalog (GPIO_PORTD_BASE、GPIO_PIN_4); }
int main (空)
{
//
//将时钟设置为以50MHz 的频率从 PLL 运行
//
ROM_SysCtlClockSet (SYSCTL_SYSDIV_3 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz);
USB_MSC_Config ();
USB_MSC_Initialize();
while (1)
{
}
}