STM32入门学习笔记之时钟树架构(下)

发布者:CelestialMagic最新更新时间:2023-06-08 来源: elecfans关键字:STM32  入门学习 手机看文章 扫描二维码
随时随地手机看文章

(2) 时钟配置寄存器 :RCC_CFGR

31302928272625242322212019181716
-MCO[2:0]-USBPREPLLMUL[3:0]PLLXTPREPLLSRC








1514131211109876543210
ADCPRE[1:0]PPRE2[2:0]PPRE1[2:0]HPRE[3:0]SWS[1:0]SW[1:0]









Bit 26~Bit 24:芯片时钟输出

0xx:禁止输出

100:选择系统时钟SYSCLK

101:选择HSI时钟

110:选择HSE时钟

111:选择PLL分频输出(2分频)

Bit 22:USB时钟分频系数

0:PLL时钟1.5分频作为USB时钟

1:PLL时钟不分频作为USB时钟

Bit 21~Bit 18:PLL倍频系数

0000:2倍频

0001:3倍频

0010:4倍频

0011:5倍频

0100:6倍频

0101:7倍频

0110:8倍频

0111:9倍频

1000:10倍频

1001:11倍频

1010:12倍频

1011:13倍频

1100:14倍频

1101:15倍频

1110:16倍频

1111:16倍频

Bit 17:HSE输入分频器

0:HSE输入不分频

1:HSE输入2分频

Bit 16:PLL时钟选择(PLL处于禁止模式才能写入)

0:HSI时钟2分频作为PLL时钟输入

1:HSE作为PLL时钟输入

Bit 15~Bit 14:ADC分频系数

00:PCLK2分频系数为2

01:PCLK2分频系数为4

10:PCLK2分频系数为6

11:PCLK2分频系数为8

Bit 13~Bit 11:APB2分频系数(最高可达72MHz)

0xx:HCLK不分频

100:HCLK分频系数为2

101:HCLK分频系数为4

110:HCLK分频系数为8

111:HCLK分频系数为16

Bit 10~Bit 8:APB1分频系数(最高只能达到36MHz)

0xx:HCLK不分频

100:HCLK分频系数为2

101:HCLK分频系数为4

110:HCLK分频系数为8

111:HCLK分频系数为16

Bit 7~Bit 4:AHB总线预分频系数

0xxx:SYSCLK不分频

1000:SYSCLK分频系数为2

1001:SYSCLK分频系数为4

1010:SYSCLK分频系数为8

1011:SYSCLK分频系数为16

1100:SYSCLK分频系数为64

1101:SYSCLK分频系数为128

1110:SYSCLK分频系数为256

1111:SYSCLK分频系数为512

Bit 3~Bit 2:系统时钟选择状态

00:HSI作为系统时钟

01:HSE作为系统时钟

10:PLL作为系统时钟

11:保留

Bit 1~Bit 0:系统时钟选择

00:选择HSI作为系统时钟

01:选择HSE作为系统时钟

10:选择PLL作为系统时钟

11:保留

2.3 设置例程

配置STM32的时钟需要创建几个文件,这几个文件如下表所示。

文件目录文件名文件功能
./SYSTEM/syssys.c时钟设置函数外部中断设置函数中断优先级设置函数
sys.h数据类型定义
stm32f103x.h定义寄存器结构定义寄存器地址定义中断编号

(1)创建上述三个文件,其中c文件添加进工程中,h文件包含进程序中,如下图所示。

图片

图片

图片

(2)stm32f103x.h文件输入以下内容:

图片

这个文件用于定义程序用到的所有寄存器的地址和结构体,是整个STM32程序的最基础的文件。

(3)sys.h输入以下内容

图片

sys.h文件用于定义STM32的时钟配置和中断配置,以及后面的端口位操作模式。

(3)sys.c文件输入以下内容

void STM32_Clock_Init( u8 PLL )

{

RCC->CR |= 0x00010000 ; //外部高速时钟使能HSEON

while( !( RCC->CR>>17 ) ) ; //等待外部时钟就绪

RCC->CFGR = 0x00000400 ; //APB1=DIV2;APB2=DIV1;AHB=DIV1;

PLL -= 2 ; //抵消2个单位(因为是从2开始的,设置0就是2)

RCC->CFGR |= ( u32 )PLL<<18 ; //设置PLL值 2~16

RCC->CFGR |= 1<<16 ; //PLLSRC ON

FLASH->ACR |= 0x32 ; //FLASH 2个延时周期

RCC->CR |= 1<<24 ; //PLLON

while( ( RCC->CR&0x02000000 )!=0x02000000 ) ; //等待PLL锁定

RCC->CFGR |= 0x00000002 ; //PLL作为系统时钟

while( ( RCC->CFGR&0x0000000C )!=0x00000008 ) ; //等待PLL作为系统时钟设置成功

}

这个文件的函数就是真正配置时钟的过程,可以对照之前描述的配置时钟的过程来看这段代码


关键字:STM32  入门学习 引用地址:STM32入门学习笔记之时钟树架构(下)

上一篇:简单实用!STM32硬件错误的调试技巧
下一篇:GD的抗干扰能力为何不如STM32

推荐阅读最新更新时间:2024-10-19 10:19

STM32入门学习笔记之时钟架构(上)
2.1 时钟树结构图 STM32属于Cortex-M3内核的单片机,时钟结构比之前的51单片机较复杂的多,根据数据手册,STM32F103的时钟结构如下图所示。 根据上图可以看到,STM32F103系列单片机具有4个时钟源,内部的8MHz时钟发生器,外部的晶体振荡器接口,最高支持16MHz,外部的32.768kHz晶体振荡器接口和内部的40kHz时钟发生器,其中32.768kHz和40kHz主要用于内部RTC时钟脉冲,8MHz的晶振通过PLL时钟倍乘器,将系统总线时钟提高为72MHz。 STM32F103系列内部具有2条外设时钟总线,APB1和APB2,其中APB2的时钟最高可达72MHz,APB1的时钟最高可达36MHz
[单片机]
<font color='red'>STM32</font><font color='red'>入门</font><font color='red'>学习</font>笔记之<font color='red'>时钟</font><font color='red'>树</font><font color='red'>架构</font>(上)
STM32入门学习笔记之时钟架构(下)
(2) 时钟配置寄存器 :RCC_CFGR 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 - MCO - USBPRE PLLMUL PLLXTPRE PLLSRC 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADCPRE PPRE2 PPRE1 HPRE SWS SW Bit 26~Bit 24:芯片时钟输出 0xx:禁止输出 100:选择系统时钟SYSCLK 101:选择HSI时钟 110:选择HSE时钟 111:选择PLL分频输出(2分频) Bit 22:U
[单片机]
<font color='red'>STM32</font><font color='red'>入门</font><font color='red'>学习</font>笔记之<font color='red'>时钟</font><font color='red'>树</font><font color='red'>架构</font>(下)
STM32入门系列-STM32时钟系统,STM32时钟
时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行。时钟系统犹如人的心脏,一旦有问题整个系统就崩溃。我们知道STM32属于高级单片机,其内部有很多的外设,但不是所有外设都使用同一时钟频率工作,比如内部看门狗和RTC,它只需30KHz的时钟频率即可工作,所以内部时钟源就有多种选择。在前面章节的介绍中,我们知道STM32系统复位后首先进入SystemInit函数进行时钟的设置,将STM32F1系统时钟设置为72MHz,然后进入主函数。那么这个系统时钟大小如何得来,其他外设的时钟又如何划分,可以通过一张时钟树图找到答案,只要理解好时钟树,STM32一切时钟的来龙去脉就会非常清楚。下面就来了解下时钟
[单片机]
STM32】7—通用定时器 & 时钟学习
0 实验预期效果 让LED闪烁(每秒钟内:亮0.5s,再暗0.5s)。 1 相关原理图 2 定时器TIM2与时钟树 2.1 TIM2 简介与特性 关于通用定时器TIM2,查STM32F407中文手册392页可知: ① TIM2 到 TIM5 简介: 通用定时器包含一个16 位或 32 位自动重载计数器,该计数器由可编程预分频器驱动。 它们可用于多种用途,包括测量输入信号的脉冲宽度(输入捕获)或生成输出波形(输出比较和 PWM)。 使用定时器预分频器和 RCC 时钟控制器预分频器,可将脉冲宽度和波形周期从几微秒调制到几毫秒。 这些定时器彼此完全独立,不共享任何资源
[单片机]
【<font color='red'>STM32</font>】7—通用定时器 & <font color='red'>时钟</font><font color='red'>树</font><font color='red'>学习</font>
STM32学习三之时钟分析
上一章我们已经将STM32的开发环境搭建成功了,那么接下来我们就可以开始进行实际操作了。在进行实际操作之前我们需要提前准备好一些资料文档,这些资料文档大家可以在我的百度网盘 https://pan.baidu.com/s/1BejuAkvtU5KKlJEo3HAXMA 提取码:dfs6 中进行下载。 很多同学在学习单片机的时候都有遇到过一个东西,那就是晶振。其实这个所谓的晶振全名叫做晶体振荡器,其作用是用于产生原始的时钟频率,晶振产生的频率经过频率发生器的放大或缩小后就成了计算机中各种不同的总线频率 ,用于计算机中各个不同的外设工作,常用晶振的模样如下图所示: 一、什么是时钟频率 计算机是一个由各种集成电路和电子器件组成,
[单片机]
<font color='red'>STM32</font><font color='red'>学习</font>三之<font color='red'>时钟</font><font color='red'>树</font>分析
STM32学习笔记3——stm32系统时钟
①HSI 是内部高速时钟, RC 振荡器, 频率为 8MHz。 可作为系统时钟或 PLL 锁相环的输入。 ②HSE 是外部高速时钟。 可通过外接一个频率范围是 4-16MHz 的时钟或者晶振。 HSE 可以作为系统时钟和 PLL 锁相环输入, 还可以经过 128 分频后输入给 RTC。 ③LSI 是内部低速时钟, RC 振荡器, 频率大约为 40K, 可供独立看门狗和 RTC 使用, 并且独立看门狗只能使用 LSI 时钟。 ④LSE 是外部低速时钟,芯片上有相应的外部低速时钟管脚。 通常在此管脚上外接一个 32.768KHz 的晶振, 供 RTC使用。 ⑤PLL 是锁相环, 用于倍频输出。
[单片机]
<font color='red'>STM32</font><font color='red'>学习</font>笔记3——<font color='red'>stm32</font>系统<font color='red'>时钟</font><font color='red'>树</font>
STM32学习笔记:【001】时钟与RCC
导言 如果学过单片机的同学应该不会陌生,学习51单片机时最经常听到的就是“最小系统”。 最小系统里面少不了晶振,否则单片机无法工作。 单片机需要晶振(时钟源)来工作,那么对于STM32芯片同样如此。 此外,同一个电路,时钟越快功耗越大,抗电磁干扰能力也随之变弱。 所以对于较为复杂的MCU一般都是采取多时钟源的方法来解决这些问题。 STM32的时钟树与时钟源 时钟源 在STM32F4中,有5个最重要的时钟源,按来源分为内外部两种;按速率也可以分为高低速两种。 时钟源 含义 时钟速率 用途 HSI 高速内部时钟 16MHz 可以直接作为系统时钟或者PLL输入 HSE 高速外部时钟 4~26MHz 可以直接作为系统时钟 L
[单片机]
<font color='red'>STM32</font><font color='red'>学习</font>笔记:【001】<font color='red'>时钟</font><font color='red'>树</font>与RCC
stm32基础知识学习——系统架构时钟
1.stm32系统架构 stm32主要由两个主模块和四个从模块构成 1 二个主模块 : Cortex-M0 内核及先进高性能总线(AHB bus) 通用DMA ( GP-DMA – general-purpose DMA) 2 四个从模块 : 内部SRAM 内部闪存存储器 AHB 到APB 的桥, 所有的外设都挂在APB 总线上 专门用于连接GPIO 口的AHB2 内部由一个多层AHB 互联的系统总线 从上图中可以看出UART,I2C,RTC这些外设都是连接再APB总线上的,所以这些设备也就ABP外设
[单片机]
<font color='red'>stm32</font>基础知识<font color='red'>学习</font>——系统<font color='red'>架构</font>及<font color='red'>时钟</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved