stm32f103c8t6怎么配置内部时钟到72mhz
时间: 2024-09-15 09:00:40 浏览: 65
STM32F103C8T6--时间(内部低速时钟).zip_STM32f103基于内部低速时钟的日期_f103c_f103c8t
5星 · 资源好评率100%
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,其内部有一个可以配置的HSI(高速内部振荡器)作为默认时钟源。要将HSI配置到72MHz,你需要完成以下步骤:
1. **禁用外部时钟源**:如果你有外部晶振连接,需要先将其从系统时钟源移除。通常在STM32的头文件`stm32f1xx_hal_conf.h`中,找到并注释掉相关的外设时钟使能宏。
2. **配置HSI**:进入HAL库提供的`SystemClock_Config`函数,找到配置HSI的部分。这部分通常会设置HSI分频系数,以便达到期望频率。对于72MHz,HSI标准频率一般是8MHz,所以你可能需要选择一个合适的分频系数,例如通过`RCC_OscInitTypeDef RCC_OscInitStruct`结构,设置`RCC_OscInitStruct.HSIState = RCC_HSI_ON`,`RCC_OscInitStruct.HSICalibrationValue = 0`,`RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE`。
```c
RCC_OscInitStruct.HSIClockRange = RCC_HSI_DIV1;
```
3. **启用HSI时钟**:然后调用`HAL_RCC_OscConfig(&RCC_OscInitStruct)`来实际应用HSI配置。
4. **配置系统时钟**:由于HSI已经是72MHz,直接配置系统时钟为HSI频率即可,这里不需要额外设置PLL。调用`HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);`,其中`FLASH_LATENCY_5`表示Flash等待周期,你可以根据项目需求调整。
```c
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
```
5. **启动时钟**:最后调用`HAL_RCC_ClockCmd(&RCC_ClkInitStruct, ENABLE)`启用新的时钟配置。
完成上述步骤后,你的STM32F103C8T6就应该使用72MHz的内部时钟了。
阅读全文