STM32F1系列HAL库配置系统时钟

发布者:朱雀最新更新时间:2022-10-19 来源: csdn关键字:STM32F1系列  系统时钟 手机看文章 扫描二维码
随时随地手机看文章

其实一开始对于时钟我也是知之甚少,在MSP432中我就一直忽视时钟配置,其实也是在STM32学习时落下的病根,现在趁有空补一下。


时钟简单讲解

对于时钟系统,在之前我写启动文件涉及到,其实,每个功能的实现都涉及到时钟。我们首先说明一下RCC


RCC:复位和时钟控制

什么是复位,什么又是时钟?在STM32参考手册中文版我们可以看到

在这里插入图片描述

注意“除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器(见图4)以外,系统复位将复位所有寄存器至它们的复位状态。”这句话告诉我们复位时,让寄存器(除了上述提及的CSR以及备份区域寄存器外)恢复至初始状态,也就是我们上电后寄存器的默认状态。

我们使用时也是在不断复位中使用的,为什么这么说?


复位的情况包含了三种:系统复位,电源复位和备份域复位;

系统复位就包含了我们的NRST引脚复位,看门狗,软件复位;电源复位就包含我们每次烧录断电后的情况;而备份域复位比较特殊,我们断电后,烧写的程序在下一次上电还会执行,这就是备份域起到了作用,我们单片机有一个电池,当我们断电时,他会给备份域供电,手册上也详细解释到了。

在这里插入图片描述

但当我们电池也没电且没有向单片机供电时,就引发了备份域复位

在这里插入图片描述

复位大致就讲到这里。


时钟控制

手册后面也是直接讲到了时钟,时钟是一个很重要的概念,我记得在电赛初选的时候考场老师就问了我这个问题(我那时没回答出来,哭哭/(ㄒoㄒ)/~~)。

时钟,打个比方就相当于我们的心跳脉搏,我们人是在一天的心跳中完成身体各部分的运转,我们单片机上的芯片根据时钟来有节拍的工作,像我们之前看到的72MHZ,48MHZ,就是系统主时钟,芯片在主时钟中协调模块的各种工作。

比如以下是一个信号接收器,它以某种频率来向out发送高低电平信号,信号接收器的工作时间就受时钟控制,时钟1与2是两个不同频率的时钟,而阴影部分是其工作时间,我们看到时钟频率低(时钟1)的,他的工作精度是没有2好的,在检测时肯定会漏接收很多信号,而2不同,他的工作速度很高,能接收很多次电平信号。

在这里插入图片描述

以上虽是一个不太恰当的例子,但也是说明了,时钟对于模块的作用,可以给到不同的工作速度,但相对应的,你觉得第二个相比第一个检测波形哪个更为整齐?这就引出了其他问题,你可以让一个普通的芯片时钟频率很高并用于出波(后面的PWM),但是他的输出波形是会有幅频失真和相频失真,总之不会太理想,更高性能的芯片也是有他的极限频率的,并且高频率带来的功耗也是很大的,你可以尝试魔改时钟频率,摸摸你的芯片有多热情,问问你芯片的香味。 总之,功耗,性能,频率,这些都是相互牵制的。

在这里插入图片描述

我们在产品手册上5.3.1也可以看到,(f频率)是有限制的。


时钟源

系统时钟可以以HSI,HSE振荡器和PLL作为时钟源,二级时钟源一般是有固定用途的,

在这里插入图片描述

比如RTC(32.768KHz)时钟专门用来给RTC 时钟模块提供时钟源

在这里插入图片描述

时钟树

在CUBEMX中是有时钟树的,与我们手册上的图神似,很方便我们去配置

在这里插入图片描述

配置时钟树

1.选型及RCC配置

选择你的芯片类型

在这里插入图片描述

以F103ZETx为例

在这里插入图片描述

打开RCC,在MODE一栏我们可以看到HSE,LSI

在这里插入图片描述

我们一般用高速外部时钟配置系统时钟,他的来源一般是用户输入或者外部晶振,后者常选

在这里插入图片描述

而HSI是由8M的RC振荡器产生的,集成在芯片内部

在这里插入图片描述
在这里插入图片描述

剩下的就是PLL(锁相环倍频),它用于将我们的其实时钟频率通过倍频增大,这也正是解释了那些频率较高的时钟怎么来的

在这里插入图片描述

低速时钟有特殊用途,我们用到再考虑。故我们如下配置MODE

在这里插入图片描述

2.时钟树配置

接着打开时钟树,

在这里插入图片描述

系统时钟包括三种来源也可以看到,PLL也是由HSE或者HSI作为倍频输入,我们一般选择HSE,再倍频以便输出更高的频率。

在这里插入图片描述

在手册时钟树图的后面,我们知道:外设的时钟都是由系统时钟而来的,所以我们先配置好系统时钟

在这里插入图片描述

在系统时钟之后是HCLK(内部AHB时钟频率),如果我们想要72MHz,只需输入72并回车,他就会给我们配置好一种方案。但是我们之前也说过,频率是有限制的

在这里插入图片描述

如果你手动配置时变红了,很有可能是超过最大范围了。

CUBEMX的优点在于它可以帮你选择时钟方案,还有分频因子,实际上就是对输入的频率做除法,我们可以修改它来修改外设使用时钟频率

在这里插入图片描述

这些时钟都是有各种去向的,我们也可以清楚看到

在这里插入图片描述

其他去向不过多解释了,之后都会接触到大部分。

点击生成代码

在这里插入图片描述

这些都是和我们之前配置是一样的,CUBEMX配置时钟很方便。

关键字:STM32F1系列  系统时钟 引用地址:STM32F1系列HAL库配置系统时钟

上一篇:STM32F1系列基本定时器HAL库配置
下一篇:STM32F1系列启动过程简单讲解

推荐阅读最新更新时间:2024-11-08 16:34

基于ARM和DS1307的实时时钟系统设计
介绍了一个简单的可调实时时钟系统的设计。设计中采用了Atmel32位的ARM微处理器作为控制驱动器件,实现了对DS1307实时时钟芯片的时间信息采样和液晶显示,并通过键盘来调节时间信息。通过实际的测试,该模块得到稳定的运行。 实时日历时钟在测控系统和智能显示中得到了广泛的应用。通过软件编程和CPU中断构造软时钟是一种较为常用的方法,时钟计时无需外围硬件支持,但是此种方法的弊端是计时精度会受到CPU主晶振、起振电容以及掉电的影响,而导致计时精度不高。因此采用硬件设计实时时钟是一种更为可靠的方式。 DS1307是I2C接口的8引脚实时时钟芯片,片内含有8个特殊功能寄存器和56bit的SRAM。它是一款按BCD码存
[单片机]
基于ARM和DS1307的实时<font color='red'>时钟</font><font color='red'>系统</font>设计
ARM920T看门狗定时器、系统时钟
看门狗定时器 原理:看门狗每隔一定时间【假设为3小时】就会饿,每次饿时都会叫,如果你不想让它叫,只要保证每隔3小时喂一次狗就可以。 递减计数器为0时会自动重启控制器。 用途: 1.用于解决远程控制器在出现电磁干扰、噪声、系统错误等外界条件造成的系统死机等不正常运行问题。 2.可以通过设置产生定时的中断信号。 结论: 1.设置WTCON 设置看门狗定时器的使能; 2.设置WTCON 和 位来设置看门狗控制器的工作频率。 3.设置WTCON 和WTCON 使能产生中断和复位信号。 4.设置WTDAT设置计数值。 --------------------------------------------------------------
[单片机]
MSP430F149的时钟系统
1、概述 上电默认状况下MCLK,SMCLK信号来自DCO,ACLK来自LF。根据官方PDF说法默认状况下DCO模块配置为RSELX=4,DCO=3,因此DCO应为1M,但示波器实测MCLK/SMCLK为680K,测试温度约25摄氏度。 标注:MCLK主时钟、SMCLK子时钟、ACLK活动时钟。 P5.4,P5.5,P5.6的第二功能分别对应MCLK,SMCLK,ACLK时钟信号,可用示波器测量。测试时发现频率后两位一直在跳动,频率稳定度很差。 MSP430系列单片机选择晶振为时钟源时,时钟周期就是晶振周期。一个机器周期 =一个时钟周期,即430每个动作都能完成一个基本操作; 一个指令周期 = 1~6个机器周期,具
[单片机]
msp430系统时钟详解
  SP430 系列单片机基础时钟主要是由低频晶体振荡器,高频晶体振荡器,数字控振荡器(DCO),锁频环(FLL)及 FLL+等模块构成。由于 430 系列单片机中的型号不同而时钟模块也将有所不同。虽然不同型号的单片机的时基模块有所不同,但这些模块生出来的结果是相同的。在MSP430F13、 14中是有TX2振荡器的, 而MSP430F11X,F11中是用LFXT1CLK来代替XT2CLK时钟信号的。在时钟模块中有3个(对于F13,F14)时信号源(或 2个时钟信号源,对于F11X、F11X1):   1-LFXT1CLK: 低频/高频时钟源。由外接晶体振荡器,而无需外接两个振荡电容器常使用的晶体振荡器是32768HZ。   2-
[单片机]
msp430<font color='red'>系统</font><font color='red'>时钟</font>详解
stm32时钟系统复习
1、参考资料 《STM32F1开发指南-库函数版本》-4.3小节 时钟系统 《STM32中文参考手册V10》-第六章 复位和时钟控制 RCC 2、时钟系统总结 1. STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。  ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。   ③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。WDG   ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。RTC 
[单片机]
5.HAL库时钟系统及定时器SYSTICK
1.系统时钟树: LSI:低速内部时钟(RC震荡器),32kHz,提供低功耗时钟,用于看门狗和自动唤醒单元。 LSE:低速外部时钟,外接32.768kHz的石英晶体,可用于RTC。 HSI:高速内部时钟16MHz,RC振荡器,精度不高,可用作系统时钟或PLL输入。 HSE:高速外部时钟4~26MHz,外接石英/陶瓷谐振器或外部时钟源,可用作RTC或PLL或系统时钟。 PLL:锁相环倍频输出,包括主PLLCLK(生成高速系统时钟216MHz和生成USB等的时钟4PLL48CLK,48MHz)和专用PLLI2SR(生成精确时钟,在I2S接口实现高品质音频性能,PLLI2Q用作SAI时钟。
[单片机]
5.<font color='red'>HAL库</font>之<font color='red'>时钟</font><font color='red'>系统</font>及定时器SYSTICK
STM32F1系列单片机的时钟系统
这是stm32的时钟系统,时钟与单片机的关系就好比心脏与人的关系一样,它为单片机的运行提供时间基准。STM32F1系列单片机的时钟树请看图1。 图1 STM32F1系列单片机的时钟树 我们将这个复杂的系统分成三个部分,第一个部分是时钟的输入,也就是时钟源。第二个部分是时钟的输出,也就是各种外设等应用模块。第三个部分就是连接输入与输出的枢纽,也就是锁相回路、分频器和倍频器等。请看图2. 图2 时钟系统的三个部分 STM32F1系列单片机有四个时钟源: 1.低速的内部时钟(LSI),它是一个RC振荡器,可以产生40KHz左右的时钟频率,供给独立看门狗或实时时钟使用。 (a) 低速的内部时钟(LSI) 2.低速的外部时钟(L
[单片机]
<font color='red'>STM32F1</font><font color='red'>系列</font>单片机的<font color='red'>时钟</font><font color='red'>系统</font>
学习STM32F429时钟系统笔记
1.为什么 STM32 要有多个时钟源呢? 因为首先 STM32 本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率, 比如看门狗以及 RTC 只需要几十 k 的时钟即可。同一个电路,时钟越快功耗越大,同时抗电磁 干扰能力也会越弱,所以对于较为复杂的 MCU 一般都是采取多时钟源的方法来解决这些问题。 2.哪几种重要的时钟源? 在stm32f429,HSI、HSE、LSI、LSE、PLL五个重要时钟源, 其中 PLL实际是分为三个时钟源,分别为主 PLL 和 I2S 部分专用 PLLI2S 和 SAI 部分专用 PLLSAI。 ①、LSI 是低速内部时钟,RC 振荡器,频率为 32kHz 左右。供独立看
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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