STM32各时钟的介绍,中断

一、时钟系统

1)HSE时钟

高速外部时钟是由外部时钟源提供,目前几乎所有的STM32单片机的设计都是在外部接一个8MHZ的晶振 ,经过PLL倍频(9倍频)后得到一个72MHZ的系统时钟。我们系统默认就是这个时钟。这个在启动文件可以看到。

2)HSI时钟

HSI时钟信号有内部8Mhz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入。HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器段。然而,即使在校准之后它的时钟频率精度仍较差。

3)PLL时钟

内部PLL用来倍频HSI RC 的输出时钟或HSE晶体输出时钟。PLL的设置必须在其被激活前完成。一旦PLL被激活,这些参数就不能被改动。如果PLL中断在时钟中断寄存器里被运行,当PLL准备就绪时,可产生中断请求。

PLL时钟一般都是对外部的8MHz的时钟信号经过9倍频后,得到72MHZ的时钟频率,这是STM32F1系列允许的最高时钟频率。

4)LSE时钟

LSE晶体是一个32.768kHZ的低速外部晶体或陶瓷谐振器。它为实时时钟*RTC或者其他定时功能提供一个低功耗且精确的时钟源。

LSE是不能驱动系统时钟的。

5)LSI时钟

LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保存运行,为独立看门狗和自动唤醒单元提供时钟。LSI时钟频率大约40Khz(在30khz~60khz之间)

LSI也是不能驱动系统时钟的

二、STM32的中断系统

2.1 中断的概念

在主程序运行过程中,出现了特定事件,使得CPUY暂停当前正在运行的程序,转而去处理这个事件,等这个事件处理完成之后,CPU再回到刚才被打断的位置继续处理,这就是中断。

那个打断CPU执行的特定事件,我们一般称之为中断源。被中断源打断的位置我们称之为断点。处理特定事件的过程,我们称之为执行中断处理程序。正在执行中断程序的时候,这个时候有可能被另外一个中断源给中断,CPU转而去执行另外一个中断源的中断处理程序,这叫中断嵌套。

中断B能否打断中断A,要看他们的优先级,优先级高的可以打断优先级低的,

中断源可以是外部的,也可以是内部的。外部的叫做外部中断源,内部的叫内部中断源(内部的中断有时候也叫异常)

2.2 为什么需要中断

对单片机系统来说,中断至关重要。

比如我们要检测按键是否按下,如果没有中断,则需要循环的方式不断的去检测按键对应的IO口的电平,这是比较耗费CPU的时间的,

2.3 STM32的中断

Cortex-M3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。

一般情况下芯片厂商会对Cortex-M3de中断继续裁剪。

STM32 有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级

STM32F103系列70个中断(咱们目前使用的芯片)有10个内核中断和60个可编程的外部中断

中断异常向量表

2.4 STM32的中断体系架构

所有中断都要交给内核Cortex-M3

3种中断来源:

1.内核其他控件(系统滴答定时器,复位,内部中断)

2,片上外设(串口,定时器I2C)

3。外部中断。(AFIO引脚复用选择器),7个引脚同时只能选一个

2.5 NVIC嵌套向量中断控制器

1)NVIC的介绍

NVIC(嵌套向量中断控制器)和处理器核的接口紧密相连,可以实现低延迟的中断处理和高效地处理中断。嵌套 向量中断控制器管理着包括内核异常,外部中断等所有中断。由NVIC决定哪个中断的处理程序交给CPU来执行。

每一个外部中断都可以被使能或者静止,并且可以被设置为挂起状态或者清除状态。处理器的中断可以是电平形式的,也可以是脉冲形式的,这个中断控制器就可以处理任何中断源。

16个IO的中断与PVD(电源电压检测),RTC(实时时钟),USB,以太网检测这20个外部中断会通过会通过EXTI来控制,然后交给NVIC。其他中断都是直接交给NVIC来处理。

2)中断优先级

NVIC为了方便管理中断,可以通过软件给每个中断设置优先级。NVIC用4个位来控制优先级,值小的优先级高。把优先级分为2种:抢占优先级和响应优先级。

规则:

1、优先级值越小,优先级越高

/2、 如果不设置优先级,则默认优先级为0.

/3、 先比较抢占优先级。抢占优先级高的可以打断抢占优先级低的。

/4、若抢占优先级一样。再比较响应优先级。但是响应优先级不会导致中断嵌套。

5、若抢占优先级一样的同时挂起,则优先处理响应抢占优先级高的。

6、若挂起的优先级(抢占和响应)都一样,则查找中断向量表,值小的先响应

NVIC对优先级分了5组,在程序中先对中断进行分组,而且分组只能分一次,

相关推荐
权泽谦3 小时前
从0到1:基于STM32与FreeRTOS的智能家居中控系统设计实录
stm32·嵌入式硬件·智能家居
云山工作室3 小时前
基于单片机的智能家居窗帘控制系统设计(论文+源码)
stm32·单片机·嵌入式硬件·物联网·课程设计
李boyang3 小时前
单片机通信协议--USART(串口通信)
单片机·嵌入式硬件·usart
YeGop4 小时前
51单片机数码管显示函数分享(8051汇编)
汇编·嵌入式硬件·51单片机
LaoZhangGong12311 小时前
STM32 F103外部晶振8MHz改为12MHz,如何配置?
c语言·stm32·单片机·嵌入式硬件·晶振
GilgameshJSS12 小时前
STM32H743-ARM例程41-FMC_INDEP
arm开发·stm32·单片机·嵌入式硬件
某林21213 小时前
如何使用ROS 2与STM32进行串口通信,并实现通过键盘按键‘1’来控制LED灯开关
stm32·嵌入式硬件·计算机外设
hazy1k14 小时前
51单片机基础-PWM、频率与占空比
stm32·单片机·嵌入式硬件·51单片机
逆小舟14 小时前
【STM32】智能排队控制系统
stm32·单片机·嵌入式硬件