1.共四种时钟信号,LSE和HSE为外部时钟信号,用上图的引脚接入晶振或者时钟源。
2.系统默认的时钟配置是用函数SystemInit实现的,默认为LSI时钟信号,为8MHz。
3.可以使用外部高速时钟信号HSE,用PD0和PD1引脚,然后用程序设置APB总线、APB1、APB2等的时钟。
可以用FPGA作为HSE的时钟源。
RCC_DeInit(); //初始化RCC寄存器
RCC_HSEConfig(RCC_HSE_ON); //打开外部高速时钟晶振HSE
RCC_WaitForHSEStartUp(); //等待外部高速时钟晶振工作
RCC_HCLKConfig(RCC_SYSCLK_Div1); //设置HCLK(AHB)为SYSCLK的1分频
RCC_PCLK2Config(RCC_HCLK_Div1); //设置ABP2为HCLK的1分频
RCC_PCLK1Config(RCC_HCLK_Div2); //设置APB1为HCLK的2分频
RCC_ADCCLKConfig(RCC_PCLK2_Div6);
FLASH_SetLatency(FLASH_Latency_2);
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
//PLL锁相环倍频输出的时钟输入源为HSE/1,9倍频
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
RCC_PLLCmd(ENABLE); //打开PLL
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { //等待PLL工作
;
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //设置系统时钟为PLLCLK
while (RCC_GetSYSCLKSource() != 0x08); //判断系统时钟是否为PLL
【加粗部分】若程序在此处一直循环执行,则检查硬件上的外部晶振是否有问题。
4.可以用【MCO-PA8】引脚输出时钟,可以用于用示波器检查时钟信号,也可用于给其他芯片提供时钟源。(需对此引脚进行复用功能配置)
5.HSI、HSE、PLLCLK可以左右系统时钟。