stm32f103r6时钟配置
时间: 2024-01-05 12:20:28 浏览: 182
STM32F103R6是一款基于ARM Cortex-M3内核的微控制器,它具有丰富的外设和功能。在配置STM32F103R6的时钟时,需要设置系统时钟和外设时钟。
1. 系统时钟配置:
- 首先,需要选择系统时钟源。可以选择内部时钟源(HSI)或外部时钟源(HSE)。
- 如果选择内部时钟源,可以使用默认的内部高速时钟(HSI)作为系统时钟源。可以通过设置RCC_CFGR寄存器来配置HSI的分频系数。
- 如果选择外部时钟源,需要将外部时钟源连接到MCU的引脚上,并通过设置RCC_CFGR寄存器来配置外部时钟源的分频系数。
- 然后,需要选择系统时钟的分频系数。可以通过设置RCC_CFGR寄存器来配置分频系数,以得到所需的系统时钟频率。
2. 外设时钟配置:
- 对于每个外设,都有一个时钟使能寄存器(RCC_APBxENR或RCC_AHBxENR),用于控制外设时钟的使能和禁用。
- 通过设置相应的时钟使能位,可以使能或禁用特定的外设时钟。
下面是一个示例代码,演示了如何配置STM32F103R6的时钟:
```c
#include "stm32f10x.h"
void SystemClock_Config(void)
{
// 选择系统时钟源为外部时钟源(HSE)
RCC->CFGR |= RCC_CFGR_SW_HSE;
// 配置外部时钟源的分频系数
RCC->CFGR |= RCC_CFGR_HPRE_DIV1; // AHB时钟不分频
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; // APB1时钟分频系数为2
RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; // APB2时钟不分频
// 使能外部时钟源(HSE)
RCC->CR |= RCC_CR_HSEON;
while(!(RCC->CR & RCC_CR_HSERDY));
// 使能外设时钟
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // 使能TIM2时钟
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // 使能GPIOA时钟
}
int main(void)
{
// 配置系统时钟
SystemClock_Config();
// 其他代码...
return 0;
}
```
阅读全文