stm32SYSCLK接HSI时钟,怎么产生72Mhz的系统时钟
时间: 2024-09-19 16:00:48 浏览: 41
STM32 时钟系统
5星 · 资源好评率100%
在STM32中,想要从HSI(高速内部振荡器,默认频率大约8 MHz或16 MHz)产生72 MHz的系统时钟(SYSCLK),通常需要利用片上PLLI(锁相环路集成器)来进行频率倍增。以下是基本步骤:
1. **配置HSI**:首先,确保HSI已经启动并达到预期的稳定频率。对于STM32F1系列,可以在启动时使用`HAL_RCC_OscConfig()`函数配置HSI为时钟源。
2. **选择PLLI输入**:HSI频率将成为PLLI的输入。在某些型号中,这已经是直接的选项,例如STM32F4/F7/F0系列可以直接设定。
3. **配置PLLI**:配置PLLI以将HSI的输入频率乘以一个预定的比例(比如12倍)。这通常涉及设置正确的预分频、Mutiplier(乘法器)和Post-Divider(后分频器)参数。具体的配置可能因型号而异,参考STM32的官方文档(如RM0090或RM0400)中的说明。
4. **激活时钟源**:设置SYSCLK为新的时钟源,通常使用`HAL_RCC_ClockConfig()`函数,选择SYSCLK预设值为"SYSCLK来源 PLL_HSI"。再次强调,这一步骤依赖于具体型号和软件库。
5. **等待稳定**:启用新时钟源后,需要等待一段时间让系统时钟稳定到期望值。
举例来说,在STM32F4中,你可以这样做(这里只是一个简化版示例,实际代码可能更复杂):
```c
// 配置HSI为时钟源
HAL_RCC_OscConfig(RCC_OscInitStruct);
// 激活时钟
HAL_RCC_ClockConfig(&RCC或多时钟配置结构体, FLASH_LATENCY_5); // 闪存等待周期
```
注意,这个过程可能会因为PLLI的启动时间和等待时间而稍有延迟,所以程序可能需要一些延时以确保时钟稳定后再进行后续操作。
阅读全文