RCC->CFGR &= (uint32_t)0xFF80FFFF; //PLL时钟1.5倍分频作为USB时钟,PLL 2倍频输出,HSE不分频,HSI时钟2分频后作为PLL输入时钟 //PLLCLK=HSICLK=8M(还未输出),HSECLK=HSEOSC,USBCLK=PLLCLK/1.5 ,除PLL外其他分频系数都为0 #ifdef STM32F10X_CL /* Reset PLL2ON and PLL3ON bits */ RCC->CR &...
RCC->CFGR &= (uint32_t)0xFF80FFFF; //PLL时钟1.5倍分频作为USB时钟,PLL 2倍频输出,HSE不分频,HSI时钟2分频后作为PLL输入时钟 //PLLCLK=HSICLK=8M(还未输出),HSECLK=HSEOSC,USBCLK=PLLCLK/1.5 ,除PLL外其他分频系数都为0 #ifdef STM32F10X_CL /* Reset PLL2ON and PLL3ON bits */ RCC->CR &...
2、时钟配置寄存器(RCC_CFGR):(复位值为0x0000 0000) 主要功能:系统时钟源切换及状态,AHB、APB1、APB2、ADC、USB预分频,PLL输入时钟源选择及HSE输入PLL分频选择,PLL倍频系数,MCO(PA8)引脚微控制器时钟输出。 3、时钟中断寄存器 (RCC_CIR):(复位值: 0x0000 0000) 主要功能:LSI、LSE、HIS、HSE、PLL就绪中断...
RCC->CFGR &= (uint32_t)0xFF80FFFF; //PLL时钟1.5倍分频作为USB时钟,PLL 2倍频输出,HSE不分频,HSI时钟2分频后作为PLL输入时钟 //PLLCLK=HSICLK=8M(还未输出),HSECLK=HSEOSC,USBCLK=PLLCLK/1.5 ,除PLL外其他分频系数都为0 #ifdef STM32F10X_CL /* Reset PLL2ON and PLL3ON bits */ RCC->CR &...
}// ⑥ 选择PLL作为系统时钟来源RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;// ⑦ 读取时钟切换状态位,确保PLLCLK被选为系统时钟while((RCC->CFGR&(uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08){ ...
RCC_CFGR 时钟配置寄存器 系统时钟源切换及状态。 AHB、APB1、APB2、ADC、USB预分频选择。 PLL输入时钟源选择及HSE输入PLL分频选择,PLL倍频系数选择。 MCO(PA8)引脚微控制器时钟输出。 RCC_APBxRSTR 外设复位寄存器 LSI、LSE、HIS、HSE、PLL就绪中断标志。
系统时钟来源可以是: HSI、 PLLCLK、 HSE,具体的由时钟配置寄存器 RCC_CFGR的 SW 位配置。我们这里设置系统时钟: SYSCLK = PLLCLK = 180M。 如果系统时钟是由HSE 经过 PLL 倍频之后的 PLLCLK 得到,当 HSE 出现故障的时候,系统时钟会切换为HSI=16M,直到 HSE 恢复正常为止。
= RCC->CFGR & RCC_CFGR_SWS;switch (tmp){case 0x00: /* HSI used as system clock */...
{}// ⑥ 选择PLL作为系统时钟来源RCC->CFGR&=(uint32_t)((uint32_t)~(RCC_CFGR_SW));RCC->CFGR|=(uint32_t)RCC_CFGR_SW_PLL;// ⑦ 读取时钟切换状态位,确保PLLCLK被选为系统时钟while((RCC->CFGR&(uint32_t)RCC_CFGR_SWS)!=(uint32_t)0x08){}}else{// 如果HSE启动失败,用户可以在这里...
确保 PLLCLK 被选为系统时钟64 while ((RCC-》CFGR&(uint32_t)RCC_CFGR_SWS) !