This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,
是否有办法在不关闭再打开的情况下重新初始化 USB?
谢谢你。
我使用它的方式如下:
#define SYS_CLOCK FREQ 120000000
#define USB_PLL_CLOCK 480000000
void USBCDCD_reinit (void)
{
uint32_t ui32PLLRate、g_ui32SysClock;
G_ui32SysClock = SYS_CLOCK_FREQ;
ui32PLLRate = USB_PLL_CLOCK;
STATE = USBCDCD_State_Unconfigured;
SysCtlPeripheralDisable (SYSCTL_Periph_USB0);
SysCtlUSBPLLDisable();
SysCtlDelay (4800000);
SysCtlUSBPLLEnable();
SysCtlPeripheralEnable (SYSCTL_Periph_USB0);
SysCtlDelay (1000000);
G_ui32SysClock = SYS_CLOCK_FREQ;
ui32PLLRate = USB_PLL_CLOCK;
USBDCDFeatureSet (0、USBLIB_Feature_CPUCLK、&g_ui32SysClock);
USBDCDFeatureSet (0、USBLIB_Feature_USBPLL、&ui32PLLRate);
USBStackModeSet (0、eUSBModeForceDevice、0);
}
RAY YANG
您好!
您上面显示的代码是否适用于您? 我建议在您重新初始化之前、您可以通过调用 SysCtlPeripheralReset (SYSCTL_Periph_USB0)来首先复位 USB 外设。 您不需要调用 SysCtlUSBPLLDisable 和 SysCtlUSBPLLEnable、因为这两个 API 只用于 TM4C123器件。
感谢你的答复。
RAY YANG