IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32F1系列HAL库配置系统时钟 -> 正文阅读

[嵌入式]STM32F1系列HAL库配置系统时钟

STM32F1系列HAL库配置系统时钟

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

时钟简单讲解

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

RCC:复位和时钟控制

什么是复位,什么又是时钟?在STM32参考手册中文版我们可以看到
在这里插入图片描述

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

复位的情况包含了三种:系统复位,电源复位和备份域复位;
系统复位就包含了我们的NRST引脚复位,看门狗,软件复位;电源复位就包含我们每次烧录断电后的情况;而备份域复位比较特殊,我们断电后,烧写的程序在下一次上电还会执行,这就是备份域起到了作用,我们单片机有一个圆形电池,当我们断电时,他会给备份域供电,手册上也详细解释到了。
在这里插入图片描述
但当我们电池也没电且没有向单片机供电时,就引发了备份域复位
在这里插入图片描述
复位大致就讲到这里。

时钟控制

手册后面也是直接讲到了时钟,时钟是一个很重要的概念,我记得在电赛初选的时候考场老师就问了我这个问题(我那时没回答出来,哭哭/(ㄒoㄒ)/~~)。
时钟,打个比方就相当于我们的心跳脉搏,我们人是在一天的心跳中完成身体各部分的运转,我们单片机上的芯片根据时钟来有节拍的工作,像我们之前看到的72MHZ,48MHZ,就是系统主时钟,芯片在主时钟中协调模块的各种工作。
比如以下是一个信号接收器,它以某种频率来向out发送高低电平信号,信号接收器的工作时间就受时钟控制,时钟1与2是两个不同频率的时钟,而阴影部分是其工作时间,我们看到时钟频率低(时钟1)的,他的工作精度是没有2好的,在检测时肯定会漏接收很多信号,而2不同,他的工作速度很高,能接收很多次电平信号。

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

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

时钟源

系统时钟可以以HSI,HSE振荡器和PLL作为时钟源,二级时钟源一般是有固定用途的,
在这里插入图片描述
比如RTC(32.768KHz)时钟专门用来给RTC 时钟模块提供时钟源
在这里插入图片描述

时钟树

在CUBEMX中是有时钟树的,与我们手册上的图神似,很方便我们去配置
在这里插入图片描述

配置时钟树

1.选型及RCC配置

选择你的芯片类型
在这里插入图片描述
以F103ZETx为例
在这里插入图片描述
打开RCC,在MODE一栏我们可以看到HSE,HSI
在这里插入图片描述
我们一般用高速外部时钟配置系统时钟,他的来源一般是用户输入或者外部晶振,后者常选
在这里插入图片描述
而HSI是由8M的RC振荡器产生的,集成在芯片内部
在这里插入图片描述
在这里插入图片描述

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

低速时钟有特殊用途,我们用到再考虑。故我们如下配置MODE
在这里插入图片描述

2.时钟树配置

接着打开时钟树,在这里插入图片描述
系统时钟包括三种来源也可以看到,PLL也是由HSE或者HSI作为倍频输入,我们一般选择HSE,再倍频以便输出更高的频率。
在这里插入图片描述

在手册时钟树图的后面,我们知道:外设的时钟都是由系统时钟而来的,所以我们先配置好系统时钟
在这里插入图片描述
在系统时钟之后是HCLK(内部AHB时钟频率),如果我们想要72MHz,只需输入72并回车,他就会给我们配置好一种方案。但是我们之前也说过,频率是有限制的
在这里插入图片描述
如果你手动配置时变红了,很有可能是超过最大范围了。
CUBEMX的优点在于它可以帮你选择时钟方案,还有分频因子,实际上就是对输入的频率做除法,我们可以修改它来修改外设使用时钟频率
在这里插入图片描述
这些时钟都是有各种去向的,我们也可以清楚看到
在这里插入图片描述
其他去向不过多解释了,之后都会接触到大部分。
点击生成代码
在这里插入图片描述
这些都是和我们之前配置是一样的,CUBEMX配置时钟很方便。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 16:51:02  更:2021-08-23 16:53:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:40:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码