|
因为特殊需要,需要将系统时钟从48M动态改到72M。
在这个过程中,芯片可以正常工作,但是唯独CDC显示断开了,且无法自行恢复。请教大神有什么解决办法没有。
RCC_USBCLKSOURCE_PLL已经根据时钟变化了。72M时是1.5,48M时是1。但是没有效果。
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
__HAL_RCC_SYSCLK_CONFIG(RCC_SYSCLKSOURCE_HSE); //更改系统时钟源
__HAL_RCC_PLL_DISABLE(); //禁止倍频
switch(UserRxBufferFS[i + 2])
{
case 0:
__HAL_RCC_PLL_CONFIG( RCC_PLLSOURCE_HSE,RCC_PLL_MUL9); //设置系统时钟大小 72M
// __HAL_RCC_USB_CONFIG( RCC_USBCLKSOURCE_PLL_DIV1_5);
break;
case 1:
__HAL_RCC_PLL_CONFIG( RCC_PLLSOURCE_HSE,RCC_PLL_MUL6); //设置系统时钟大小 48M
// __HAL_RCC_USB_CONFIG( RCC_USBCLKSOURCE_PLL);
break;
}
__HAL_RCC_PLL_ENABLE();
/* Wait till PLL is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
{
}
// Systemclock_Config();
/* Select PLL as system clock source */
__HAL_RCC_SYSCLK_CONFIG(RCC_SYSCLKSOURCE_PLLCLK); //切换系统时钟
}
break;
} |
|