void SystemClock_Config(void)
{
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON); //INPUT HSE = 24M
ErrorStatus HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
FLASH_PrefetchBufferCmd(ENABLE); //M0 defined
FLASH_SetLatency(FLASH_Latency_1); //M0 defined
RCC_PREDIV1Config(RCC_PREDIV1_Div1);
RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_2); //PLL CLK = HSE *RCC_PLLSource_PREDIV1*2 = 48M
RCC_PLLCmd(ENABLE); //enable PLL CLK
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //WAIT PLL CLK ready
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //SELECT SYSCLK = PLLCLK =48M
// * - 0x00: HSI used as system clock
// * - 0x04: HSE used as system clock
// * - 0x08: PLL used as system clock
// * - 0x0C: HSI48 used as system clock, applicable only for STM32F072 devices
while(RCC_GetSYSCLKSource()!=0x08)
{
}
RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB CLK(HCLK) = SYS CLK = 48M
RCC_PCLKConfig(RCC_HCLK_Div1); //APB CLK(PCLK) = HCLK = 48M
RCC_USARTCLKConfig(RCC_USART1CLK_PCLK); // UART2 CLK = 48M
RCC_USARTCLKConfig(RCC_USART2CLK_PCLK); // UART2 CLK = 48M
RCC_I2CCLKConfig(RCC_I2C1CLK_SYSCLK); // I2C CLK =48M
RCC_USBCLKConfig(RCC_USBCLK_PLLCLK); // USB CLK = 48M
}
}
上一篇:STM32F0的UART选择HSI作为时钟源
下一篇:stm32f051精确延时的实现
推荐阅读最新更新时间:2024-03-16 16:07
设计资源 培训 开发板 精华推荐
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计
- Melexis采用无磁芯技术缩小电流感测装置尺寸
- 千丘智能侍淳博:用数字疗法,点亮“孤独症”儿童的光
- 数药智能冯尚:ADHD数字疗法正为儿童“多动症”提供更有效便捷服务
- Vicor高性能电源模块助力低空航空电子设备和 EVTOL的发展
- 创实技术electronica 2024首秀:加速国内分销商海外拓展之路
- 【STM32H7教程】第10章 STM32H7的FLASH,RAM和栈使用情况
- 【STM32H7教程】第11章 STM32H7移植SEGGER的硬件异常分析
- 【STM32H7教程】第12章 STM32H7的HAL库框架设计学习
- 【STM32H7教程】第13章 STM32H7启动过程详解
- 【STM32H7教程】第14章 STM32H7的电源,复位和时钟系统
- 【STM32H7教程】第15章 STM32H7的GPIO基础知识(重要)
- 【STM32H7教程】第16章 STM32H7必备的HAL库API(重要)
- 【STM32H7教程】第17章 STM32H7之GPIO的HAL库API
- 【STM32H7教程】第18章 STM32H7的GPIO应用之跑马灯
- 【STM32H7教程】第19章 STM32H7的GPIO应用之按键FIFO