电子产业一站式赋能平台

PCB联盟网

搜索
查看: 2246|回复: 0
收起左侧

STM32F103的CDC串口如何自恢复?

[复制链接]

571

主题

910

帖子

4781

积分

四级会员

Rank: 4

积分
4781
发表于 2023-4-21 16:00:51 | 显示全部楼层 |阅读模式
因为特殊需要,需要将系统时钟从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;
}
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表