系统时钟来源可以是: HSI、 PLLCLK、 HSE,具体的由时钟配置寄存器 RCC_CFGR的 SW 位配置。我们这里设置系统时钟: SYSCLK = PLLCLK = 180M。 如果系统时钟是由HSE 经过 PLL 倍频之后的 PLLCLK 得到,当 HSE 出现故障的时候,系统时钟会切换为HSI=16M,直到 HSE 恢复正常为止。 4. ④AHB 总线时钟 HCLK: 系统时...
tmp = RCC->CFGR & RCC_CFGR_SWS; switch (tmp) { case 0x00: /* HSI used as system clock */ SystemCoreClock = HSI_VALUE; break; case 0x04: /* HSE used as system clock */ SystemCoreClock = HSE_VALUE; break; case 0x08: /* PLL used as system clock */ /* Get PLL clock source ...
= RCC_CFGR_SWS_PLL); 84 { 85 } 2 其他时钟 1. A、RTC 时钟 RTCCLK 时钟源可以是 HSE 1 MHz( HSE 由一个可编程的预分频器分频)、 LSE 或者 LSI 时钟。选择方式是编程 RCC 备份域控制寄存器 (RCC_BDCR) 中的 RTCSEL[1:0] 位和 RCC 时钟配置寄存器 (RCC_CFGR) 中的 RTCPRE[4:0] 位。所...
tmp = RCC->CFGR & RCC_CFGR_SWS; switch (tmp) { case 0x00: /* HSI used as system clock */ SystemCoreClock = HSI_VALUE; break; case 0x04: /* HSE used as system clock */ SystemCoreClock = HSE_VALUE; break; case 0x08: /* PLL used as system clock */ /* Get PLL clock source ...
2、时钟配置寄存器(RCC_CFGR):(复位值为0x0000 0000)主要功能:系统时钟源切换及状态,AHB、APB1、...
tmp = RCC->CFGR & RCC_CFGR_SWS; switch (tmp) { case 0x00: /* HSI used as system clock */ SystemCoreClock = HSI_VALUE; break; case 0x04: /* HSE used as system clock */ SystemCoreClock = HSE_VALUE; break; case 0x08: /* PLL used as system clock */ ...
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就绪中断标志,...
{}// ⑥ 选择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启动失败,用户可以在这里...
高速外部时钟 (HSE) 锁相环(PLL) 低速内部时钟(LSI) 通过配置 RCC_CFGR[SW] ,可以选择不同的时钟源作为系统时钟源。通过读取RCC_CFGR[SWS] 的值,可以确定系统时钟源选择。值得注意的是,当使能上述四个时钟源后,需要等待 RCC 寄存器中对应的时钟准备就绪标志被拉高,才能确认时钟源被使能完成。( eg. 配置 RCC...
这两个位(实际就是是RCC->CFGR寄存器的3:2位),名字是SWS[1:0],在参考手册上的解释是:SWS[1:0]:系统时钟切换状态 (System clock switch status) 由硬件置’1’ 或清’0’ 来指示哪一个时钟源被作为系统时钟。00:HSI作为系统时钟;01:HSE作为系统时钟;10:PLL 输出作为系统时钟;11...