登录/注册

stm32f103库函数时钟

更多

在STM32F103中使用库函数配置时钟系统,主要涉及标准外设库(Standard Peripheral Library)中的RCC(复位与时钟控制)相关函数。以下是关键步骤和函数说明:


1. 时钟源配置

STM32F103支持多种时钟源:

常用函数:

// 使能HSE(外部高速时钟)
RCC_HSEConfig(RCC_HSE_ON);  
while (!RCC_WaitForHSEStartUp()); // 等待HSE就绪

// 配置PLL(以HSE为例,倍频到72MHz)
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); // HSE不分频,9倍频(8MHz*9=72MHz)
RCC_PLLCmd(ENABLE);  
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); // 等待PLL就绪

2. 系统时钟切换

将PLL输出作为系统时钟源:

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // 切换系统时钟到PLL
while (RCC_GetSYSCLKSource() != 0x08);     // 确认切换成功

3. 总线时钟分频

RCC_HCLKConfig(RCC_SYSCLK_Div1);   // AHB时钟 = 系统时钟(72MHz)
RCC_PCLK1Config(RCC_HCLK_Div2);    // APB1时钟 = 36MHz
RCC_PCLK2Config(RCC_HCLK_Div1);    // APB2时钟 = 72MHz

4. 外设时钟使能

必须开启外设对应的时钟才能使用其功能

// 示例:开启GPIOA和USART1时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);

完整配置示例(72MHz系统时钟)

void SystemClock_Config(void) {
    // 1. 使能HSE
    RCC_HSEConfig(RCC_HSE_ON);
    while (!RCC_WaitForHSEStartUp());

    // 2. 配置PLL:HSE作为源,9倍频(8MHz*9=72MHz)
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
    RCC_PLLCmd(ENABLE);
    while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

    // 3. 切换系统时钟到PLL
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    while (RCC_GetSYSCLKSource() != 0x08);

    // 4. 配置总线分频
    RCC_HCLKConfig(RCC_SYSCLK_Div1);   // AHB=72MHz
    RCC_PCLK1Config(RCC_HCLK_Div2);    // APB1=36MHz
    RCC_PCLK2Config(RCC_HCLK_Div1);    // APB2=72MHz
}

注意事项

通过合理配置时钟,可充分发挥STM32F103的性能并优化功耗。建议结合官方库文件stm32f10x_rcc.h/c深入理解函数参数。

ARM系列STM32F103芯片的解密方法

破解STM32F103芯片的方法

2023-09-19 09:03:40

STM32F103 GPIO内部电路图讲解

STM32F103 GPIO内部电路图讲解

2023-02-01 16:32:14

STM32F103单片机时钟树结构图及时钟配置

STM32属于Cortex-M3内核的单片机,时钟结构比之前的51单片机较复杂的多,根据数据手册,STM32F103的

2023-01-19 16:36:00

STM32F103中断串口通信USART

本文基于笔者之前的博客STM32F103串口通信USART小试牛刀,在此基础上,加上中断函数,并补充HAL函数实现。文章目录一、实验原理二、实验

资料下载 李辉 2022-01-14 10:39:40

STM32F103 库函数写外部中断时程序卡死,追踪运行卡死在启动文件.s的 B.中解决办法,实测OK,供参考

STM32F103 库函数写外部中断时程序卡死,追踪运行卡死在启动文件.s的 B.中解决办法,实测OK,供参考

资料下载 佚名 2021-12-08 12:21:11

基于STM32f103的输入捕获测频率和占空比

基于STM32f103的输入捕获测频率和占空比

资料下载 shyshyshy 2021-08-02 10:10:24

基于STM32f103的FFT频率测试程序下载

基于STM32f103的FFT频率测试程序下载

资料下载 shyshyshy 2021-08-02 10:07:20

ULN2003驱动28BYJ48步进电机STM32F103库函数合集免费下载

ULN2003驱动28BYJ48步进电机STM32F103版库函数合集免费下载

资料下载 ah此生不换 2020-03-10 08:00:00

基于STM32F103单片机的矩阵按键设计

本实验使用STM32F103单片机,主题代码通用的。

2022-12-09 17:18:46

STM32F103使用(3.5)库函数新建工程

意法半导体的STM32系列都支持库函数编程,库函数比常规的寄存器方式编程更加好移植,特别是项目需要在几个系列芯片上移植,使用

2022-05-28 14:00:43

怎样配合ST提供的库函数理解STM32F103的USB模块

今天有空,开贴讲讲,怎样配合ST 提供的库函数理解STM32F103 的USB模块,以及怎么调用这些库函数来实现基本的USB通信。题目很大,先只

2022-02-22 06:42:33

为什么STM32F103库函数写外部中断时程序会卡死

为什么STM32F103库函数写外部中断时程序会卡死?是什么原因造成的?如何去解决呢?

2021-11-17 07:02:20

GPIO的常用库函数使用方法总结

+GPIOx_LCKR作用和配置STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法总结+一个网络上的误区各类时钟的实现+各类

2021-08-23 09:19:28

STM32F103入门系列

学习板:STM32F103ZET6强推系列:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结

2021-08-17 09:03:47

stm32f030和stm32f103功能差异

stm32f030和stm32f103功能差异主要表现在哪?

2021-07-22 09:35:47

7天热门专题 换一换
相关标签