STM32序列——中断和事件

来源:互联网 发布:鹰蛋算法 编辑:程序博客网 时间:2024/06/15 16:02
 

第六节   中断和事件

一、 嵌套向量中断控制器(NVIC:Nested Vectored Interrupt Controller嵌套向量中断控制器

特性

��� 43 个可屏蔽中断通道(不包含16 个Cortex-M3 的中断线);

��� 16 个可编程的优先等级;

��� 低延迟的异常和中断处理;

��� 电源管理控制;

���系统控制寄存器的实现;

嵌套向量中断控制器(NVIC)和处理器核的接口紧密相连,可以实现低延迟的中断处理和有

效处理地处理晚到的中断。

嵌套向量中断控制器管理着包括核异常等中断。关于更多的异常和NVIC编程的说明请参考

ARM《Cortex-M3TM技术参考手册》的第5章的异常和第8章的嵌套向量中断控制器。

二、 系统嘀嗒(SysTick)校准值寄存器

系统嘀嗒校准值固定到9000,当系统嘀嗒时钟设定为9兆赫,产生1ms时基。

三、 中断和异常向量

四、 6.2 外部中断/事件控制器(EXTI)

外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地

配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每

个输入线都可以被独立的屏蔽。挂起寄存器保持着状态线的中断要求。

五、 6.2.1 主要特性

EXTI控制器的主要特性如下:

��� 每个中断/事件都有独立的触发和屏蔽

��� 每个中断线都有专用的状态位

��� 支持多达19 个中断/事件请求

��� 检测脉冲宽度低于APB2 时种宽度的外部信号。参见数据手册中电气特性部分的相关参

数。

六、 6.2.2 框图

 外部中断/事件控制器框图

七、 唤醒事件管理

Cortex-M3 可以处理外部时间或内部中断来唤醒内核。通过配置任何外部I/O端口、RTC 闹

钟和USB唤醒事件可以唤醒CPU(内核从WFE退出)。使用外部I/O端口作为唤醒事件,请参见6.2.4节的功能说明

八、 功能说明

如要产生中断,中断线必须事先配置好并被激活。这是根据需要的边沿检测通过设置2个触

发寄存器,和在中断屏蔽寄存器的相应位写“1”到来允许中断请求。当需要的边沿在外部

中断线上发生时,将产生一个中断请求,对应的挂起位也随之被置1。通过写“1”到挂起寄存器,可以清除该中断请求。为产生事件触发,事件连接线必须事先配置好并被激活。这是根据需要的边沿检测通过设置2个触发寄存器,和在事件屏蔽寄存器的相应位写“1”到来允许事件请求。当需要的边沿在事件连线上发生时,将产生一个事件请求脉冲,对应的挂起位不被置1。通过在软件中断/事件寄存器写“1”,一个中断/事件请求也可以通过软件来产生。硬件中断选择

通过下面的过程来配置19个线路做为中断源:

��� 配置19 个中断线的屏蔽位(EXTI—IMR)

��� 配置所选中断线的触发选择位(EXTI_RTSR 和EXTI_FTSR);

��� 配置那些控制映像到外部中断控制器(EXTI)的NVIC 中断通道的使能和屏蔽位,使得19

个中断线中的请求可以被正确地响应。

硬件事件选择

通过下面的过程,可以配置19个线路为事件源

��� 配置19 个事件线的屏蔽位(EXTI_EMR)

��� 配置事件线的触发选择位(EXTI_RTSR and EXTI_FTSR)

软件中断/事件的选择19个线路可以被配置成软件中断/事件线。下面是产生软件中断的过程:

配置19 个中断/事件线屏蔽位(EXTI_IMR, EXTI_EMR)(Interrupt Mask Register)

��� 设置软件中断寄存器的请求位(EXTI_SWIER)

6.2.5 外部中断/事件线路映像

80通用I/O端口以下图的方式连接到19个外部中断/事件线上:

图为外部中断通用I/O映像

另外三种其他的外部中断/事件控制器的连接如下:

��� EXTI 线16 连接到PVD 输出

��� EXTI 线17 连接到RTC 闹钟事件

��� EXTI 线18 连接到USB 唤醒事件

说明:有些图片就是传不上来,还有一些寄存器的介绍就省略。

如果要看见全文,可以到CSDN下载。