自学内容网 自学内容网

STM32单片机 复习背诵专题

未完待续。。。

这个文章的主要目的是:

  1. 搭建知识框架
  2. 快速复习

如果要十分深入的了解每个模块的特性和具体的api使用方法,最好是直接下载ST的官方代码库进行阅读。
STM32F103官方示例代码

学习本节要注意两点: 1. 注意英文缩写 2. 注意体系架构

单片机的内部结构

STM32F103的MCU工作频率最高是72MHZ

时钟

MCU可以使用哪些时钟?

对于单片机,时钟使最最最重要的!MCU可以使用如下六个时钟

高速内部时钟 High Speed Internal HSI 这个时钟信号是由单片机内部8MHZ的RC振荡器产生的,时钟频率精度较差,精度典型值是1%,仅在时钟频率要求不高的场所使用。

高速外部时钟 High Speed External HSE 这个时钟指的是芯片外部石英晶体或陶瓷谐振器或外部时钟源,精度较高,且频率范围是4-16MHZ,可以直接作为系统时钟SYSCLK,并且可以在2分频后作为PLL的输入,128分频后作为RTC时钟

锁相环时钟Phase-Locked Loop PLL 锁定相位频率的闭环控制电路,即:利用外部输入信号,控制内部的振荡信号的 频率和相位,实现信号同步、信号倍频 当输入频率较低,可以通过PLL进行倍频,获得高频信号

低速内部时钟 Low Speed Internal LSI 该时钟由芯片内部40KHZ的RC振荡器产生,频率在30-60KHZ,主要用于 独立看门狗IWDG和RTC使用**(独立看门狗只能用LSI时钟,因为LSI RC是一个低功耗时钟源,MCU停机、待机模式下可保持运行,给独立看门狗和自动唤醒单元提供时钟)**

低速外部时钟 Low Speed External LSE 该时钟仅作为MCU的内部RTC时钟源,来自于芯片外部的32.768KHZ石英晶体、陶瓷振荡器或外部时钟源。LSE可以给RTC提供精准时钟

时钟相关的概念

系统时钟 SYSCLK 是处理器运行的时间基准 它是由HSE 8MHZ经过PLL倍频后得到的,一般会直接倍频到MCU的最大频率72MHZ

时钟安全系统 Clock Security System CSS ,它的作用是在外部时钟失效时,自动将SYSCLK切换到HSI时钟源,保证系统正常运行

看门狗 STM32有两个看门狗,功能相似,区别是时钟源不同

  1. 独立看门狗 IWDG 本质是12位的递减计数器 当从设定值递减到0时,出发IWDG的RESRT复位信号, 由40KHZ的LSI时钟提供

  2. 窗口看门狗 WWDG

实时时钟Real Time Clock RTC ,是一个独立的定时器、计数器,用于精密计时器、闹钟和时间戳,RTC可选HSE/128分频, LSE,LSI 3个时钟作为时钟源

时钟输出

MCO Micro-controller Clock Output 控制器时钟输出, 即STM32将时钟信号输出到引脚,只有可以被配置成MCO功能的引脚才可以对外输出固定频率的时钟信号, MCO的来源可以是:SYSCLK,HSI,HSE,PLLCLK/2分频 通常使用MCO验证系统时钟的正确性

外设时钟
上面的内容是MCU的时钟是怎么来的,MCU拿到时钟信号后如何处理的(来自内部外部6个时钟源,拿到后倍频成SYSCLK,分频给WDG\RTC\MCO等)

对于MCU而言,他周围的外设,如何获取时钟信号?
使用外设时钟,首先了解两个术语

AHB Advanced High Performance Bus 先进高性能总线
APB Advanced Peripheral Bus 先进外设总线

分频和倍频

总线具有预分频器,可以通过分频器对当前输入时钟信号进行分频处理,标识符是 /1, /2,/4,/8等,如AHB总线预分频器8分频则是 AHB/8

只有PLL可以倍频,倍频标识: PLL8,即8倍频,如HSE OSC 8MHZ -> PLL8 -> SYSCLK 72MHZ

对于Flash类的外设

HSI RC 8MHZ是FLASH CLK 始终的时钟信号源

对于USB类的外设

USB串行接口对时钟精度要求较高,只能使用HSE经过PLL倍频获得PLLCLK,再输入给USB预分频器得到USB 工作频率
STM32单片机自带FULL SPEED USB接口,且需要频率48MHZ,因此要想使用USB,STM32的PLL倍频器必须使能

对于其他外设

SYSCLK 经过 AHB预分频器后,得到AHB CLK随后分给各个外设模块

I2S3 CLK

I2S Inter-IC Sound 数字音频设备传输标准,STM32集成了I2S接口,SYSCLK直接作为I2S3 CLK时钟源

I2S2 CLK

SYSCLK直接作为I2S3 CLK时钟源

SDIO CLK

Secure Digital Input and Output SDIO 安全数字输入输出
时钟来源SYSCLK->AHB/1->SDIO CLK

FSMC CLK

Flexible Static Memory Controller FSMC灵活静态存储控制器
时钟来源SYSCLK->AHB/1->FSMC CLK

HCLK

内核总线使用的HCLK时钟,AHB总线、内核、内存和DMA都是用HCLK时钟
时钟来源HSE OSC 8MHZ->PLL8->SYSCLK->AHB/1->HCLK

HCLK/2

SDIO的AHB接口总线使用的时钟 HCLK/2
时钟来源SYSCLK->AHB/2->HCLK/2

FCLK

Free Running Clock FCLK Cortex系统空闲自由运行时钟
时钟来源SYSCLK->AHB/1->FCLK

Cortex Sys CLK = SysTickCLK

Cortex系统定时器就是SysTick系统滴答定时器
时钟来源SYSCLK-> AHB/8 -> CortexSYSCLK

PCLK1

APB1总线挂在的外设,均使用PCLK1时钟
时钟来源SYSCLK->AHB->APB1 36MHZ

TIM2\3\4\5\6\7CLK

定时器2、3、4、5、6、7使用的时钟
时钟来源SYSCLK->AHB->APB1->TIM2/3/4/5/6/7CLK

PCLK2

APB2总线挂载的外设,均使用PCLK2时钟
时钟来源SYSCLK->AHB->APB2 72MHZ

TIM1CLK TIM8CLK

定时器1、8使用的时钟
时钟来源SYSCLK->AHB->APB2->TIM1/8CLK

ADC CLK

ADC1,2/3 使用的时钟
时钟来源SYSCLK->AHB->APB2->ADC预分频器->ADCCLK


原文地址:https://blog.csdn.net/Mrsherlock_/article/details/143896288

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!