或者内部RC振荡器(HSI) 为8MHz /2 为4MHz 进入PLLSRC选择开关,通过PLLMUL锁相环进行倍频(x18)后为72MHz PS: 网上有很多人说是5个时钟源,这种说法有点问题,学习之后就会发现PLL并不是自己产生的时钟源,而是通过其他三个时钟源倍频得到的时钟 2系统时钟SYSCLK 系统时钟SYSCLK可来源于三个时钟源: ①、HSI振荡...
通过设置 PLL 的倍频因子,可以对 PLL 的时钟来源进行倍频,倍频因子可以是:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],具体设置成多少,由时钟配置寄存器 CFGR 的位 21-18:PLLMUL[3:0] 设置。我们这里设置为 9 倍频,因为上一步我们设置 PLL 的时钟来源为 HSE=8M,所以经过 PLL 倍频之后的 PLL 时钟...
/*** @brief 配置HSE作为系统时钟来源* @param RCC_PLLMul_x:PLL倍频因子,* x可以是:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]* @retval 无*/voidHSE_SetSysClk(uint32_tRCC_PLLMul_x){ErrorStatusHSEStatus;// 把RCC寄存器复位RCC_DeInit();// 使能HSERCC_HSEConfig(RCC_HSE_ON);// 返...
1:PLL时钟直接作为USB时钟 位21:18 PLLMUL:PLL倍频系数 (PLL multiplication factor) 由软件设置来确定PLL倍频系数. 只有在PLL关闭的情况下才可被写入. 注意:PLL的输出频率不能超过72MHz 0000:PLL 2倍频输出 1000:PLL 10倍频输出 0001:PLL 3倍频输出 1001:PLL 11倍频输出 ...
或者内部RC振荡器(HSI) 为8MHz /2 为4MHz 进入PLLSRC选择开关,通过PLLMUL锁相环进行倍频(x18)后为72MHz PS: 网上有很多人说是5个时钟源,这种说法有点问题,学习之后就会发现PLL并不是自己产生的时钟源,而是通过其他三个时钟源倍频得到的时钟 2系统时钟SYSCLK ...
通过设置PLL的倍频因子,可以对PLL的时钟来源进行倍频,倍频因子可以是:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16], 具体设置成多少,由时钟配置寄存器CFGR的位21-18:PLLMUL[3:0]设置。我们这里设置为9倍频, 因为上一步我们设置PLL的时钟来源为HSE=8M,所以经过PLL倍频之后的PLL时钟:PLLCLK = 8M *9 =...
PLLMUL用于设置STM32的PLLCLK,STM32支持2~16倍频设置。我们常用 的是8M外部晶振+9倍频设置,刚好得到72Mhz的PLLCLK。 SW是STM32的SYSCLK(系统时钟)切换开关,从上图可以看出,SYSCLK的 来源可以是3个:HSI、PLLCLK和HSE。 CSS是时钟安全系统,可以通过软件被激活。一旦其被激活,时钟监测器将在HSE振荡器启动延迟后被...
STM32 RCC分析与使用 STM32RCC分析与使用 由于STM32系列微控制器系统比较复杂,时钟系统也相对于普通MCU更多样化,这加大了我们设计程序和学习的难度。比如普通的MCU延时程序,我们直接可以使用“for循环”或者“while”来轻易实现;而在Cortex核的STM32系列微控制器上则不行:因为无法判断当时的时钟频率,做不到精确的...
PLLMUL 用于设置 STM32 的 PLLCLK, STM32 支持 2~16 倍频设置。我们常用的是 8M 外部晶振+9 倍频设置,刚好得到 72Mhz 的 PLLCLK。 SW 是 STM32 的 SYSCLK(系统时钟)切换开关,从上图可以看出, SYSCLK 的来源可以是 3个:HSI、PLLCLK和 HSE。
设置PLL : RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); 打开PLL : RCC_PLLCmd(ENABLE); 等待PLL 工作: while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); 设置系统时钟: RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); 判断PLL 是否是系统时钟: while(RCC_GetSYSCLKSource() != 0x08);...