时钟树

简单总结一下:
PLLCLK的来源有三个,HSE、HSE/2、HSI/2,一般选 HSE = 8M
SYSCLK(系统时钟)的来源有三个,PLLCLK(锁相环)、HSE、HEI,一般选 PLLCLK * 9 = 72M
AHB总线上的时钟 HCLK = SYSCLK = 72M
APB1总线上的时钟 PCLK1 = HCLK/2 = 36M
APB2总线上的时钟 PCLK2 = HCLK = 72M
官方固件库的时钟配置(通过寄存器)
static void SetSysClockTo72(void)
{
__IO uint32_t StartUpCounter = 0, HSEStatus = 0;
/* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/
/* 使能 HSE */
RCC->CR |= ((uint32_t)RCC_CR_HSEON);
/* 等待HSE就绪并做超时处理 */
do
{
HSEStatus = RCC->CR & RCC_CR_HSERDY;
StartUpCounter++;
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
if ((RCC->CR & RCC_CR_HSERDY) != RESET)
{
HSEStatus = (uint32_t)0x01;
}
else
{
HSEStatus = (uint32_t)0x00;
}
// 如果HSE启动成功,程序则继续往下执行
if (HSEStatus == (uint32_t)0x01)
{
// 使能预取指
FLASH->ACR |= FLASH_ACR_PRFTBE;
// Flash 2 wait state
FLASH-&g

最低0.47元/天 解锁文章
1445

被折叠的 条评论
为什么被折叠?



