秉火429笔记之九 中断应用概述

2019-09-12来源: eefocus关键字:秉火  中断应用  优先级

1. 中断类型

在此不严格区分中断和异常,即简单的认为中断与异常一个概念。


M4 内核搭载了异常响应系统,支持众多的系统异常和外部中断。其中,F429芯片,系统异常10个,外部中断91个。除个别异常的优先级固定外,其它均可编程。stm32f4xx.h


typedef enum IRQn

{

/******  Cortex-M4 Processor Exceptions Numbers ****************************************************************/

  NonMaskableInt_IRQn         = -14,    /*!< 2 Non Maskable Interrupt                                          */

  MemoryManagement_IRQn       = -12,    /*!< 4 Cortex-M4 Memory Management Interrupt                           */

  BusFault_IRQn               = -11,    /*!< 5 Cortex-M4 Bus Fault Interrupt                                   */

  UsageFault_IRQn             = -10,    /*!< 6 Cortex-M4 Usage Fault Interrupt                                 */

  SVCall_IRQn                 = -5,     /*!< 11 Cortex-M4 SV Call Interrupt                                    */

  DebugMonitor_IRQn           = -4,     /*!< 12 Cortex-M4 Debug Monitor Interrupt                              */

  PendSV_IRQn                 = -2,     /*!< 14 Cortex-M4 Pend SV Interrupt                                    */

  SysTick_IRQn                = -1,     /*!< 15 Cortex-M4 System Tick Interrupt                                */

/******  STM32 specific Interrupt Numbers **********************************************************************/

  WWDG_IRQn                   = 0,      /*!< Window WatchDog Interrupt                                         */

  PVD_IRQn                    = 1,      /*!< PVD through EXTI Line detection Interrupt                         */

  TAMP_STAMP_IRQn             = 2,      /*!< Tamper and TimeStamp interrupts through the EXTI line             */

  RTC_WKUP_IRQn               = 3,      /*!< RTC Wakeup interrupt through the EXTI line                        */

  FLASH_IRQn                  = 4,      /*!< FLASH global Interrupt                                            */

  RCC_IRQn                    = 5,      /*!< RCC global Interrupt                                              */

  EXTI0_IRQn                  = 6,      /*!< EXTI Line0 Interrupt                                              */

  EXTI1_IRQn                  = 7,      /*!< EXTI Line1 Interrupt                                              */

  EXTI2_IRQn                  = 8,      /*!< EXTI Line2 Interrupt                                              */

  EXTI3_IRQn                  = 9,      /*!< EXTI Line3 Interrupt                                              */

  EXTI4_IRQn                  = 10,     /*!< EXTI Line4 Interrupt                                              */

  DMA1_Stream0_IRQn           = 11,     /*!< DMA1 Stream 0 global Interrupt                                    */

  DMA1_Stream1_IRQn           = 12,     /*!< DMA1 Stream 1 global Interrupt                                    */

  DMA1_Stream2_IRQn           = 13,     /*!< DMA1 Stream 2 global Interrupt                                    */

  DMA1_Stream3_IRQn           = 14,     /*!< DMA1 Stream 3 global Interrupt                                    */

  DMA1_Stream4_IRQn           = 15,     /*!< DMA1 Stream 4 global Interrupt                                    */

  DMA1_Stream5_IRQn           = 16,     /*!< DMA1 Stream 5 global Interrupt                                    */

  DMA1_Stream6_IRQn           = 17,     /*!< DMA1 Stream 6 global Interrupt                                    */

  ADC_IRQn                    = 18,     /*!< ADC1, ADC2 and ADC3 global Interrupts                             */

  

#if defined(STM32F429_439xx)

  CAN1_TX_IRQn                = 19,     /*!< CAN1 TX Interrupt                                                 */

  CAN1_RX0_IRQn               = 20,     /*!< CAN1 RX0 Interrupt                                                */

  CAN1_RX1_IRQn               = 21,     /*!< CAN1 RX1 Interrupt                                                */

  CAN1_SCE_IRQn               = 22,     /*!< CAN1 SCE Interrupt                                                */

  EXTI9_5_IRQn                = 23,     /*!< External Line[9:5] Interrupts                                     */

  TIM1_BRK_TIM9_IRQn          = 24,     /*!< TIM1 Break interrupt and TIM9 global interrupt                    */

  TIM1_UP_TIM10_IRQn          = 25,     /*!< TIM1 Update Interrupt and TIM10 global interrupt                  */

  TIM1_TRG_COM_TIM11_IRQn     = 26,     /*!< TIM1 Trigger and Commutation Interrupt and TIM11 global interrupt */

TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt

[1] [2] [3] [4]
关键字:秉火  中断应用  优先级 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic474287.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:秉火429笔记之八 RCC时钟
下一篇:秉火429笔记之十四 USART--串口通信

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

秉火429笔记之十 EXTI-外部中断/事件
1. EXTI 简介外部中断/事件控制器(EXTI)管理了控制器的23个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。EXTI 控制器的主要特性如下: 每个中断/事件线上都具有独立的触发和屏蔽每个中断线都具有专用的状态位支持多达 23 个软件事件/中断请求检测脉冲宽度低于 APB2 时钟宽度的外部信号。 2. EXTI 功能框图3. 功能点要产生中断,必须先配置好并使能中断线。要产生事件,必须先配置好并使能事件线。通过在软件中对软件中断/事件寄存器写“1”,也可以产生
发表于 2019-09-12
秉火429笔记之十 EXTI-外部中断/事件
秉火429笔记之十一 Systick--滴答定时器
SysTick—系统定时器是属于CM4内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器。所有基于CM4内核的单片机都具有这个系统定时器,使得软件在CM4单片机中可以很容易的移植。系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。2. 寄存器说明CTRL  SysTick控制及状态寄存器LOAD  SysTick重装载数值寄存器VAL SysTick当前数值寄存器CALIB SysTick校准数值寄存器(可忽略)3. 编程要点__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks){  if ((ticks
发表于 2019-09-12
秉火429笔记之十一 Systick--滴答定时器
秉火429笔记之十二 看门狗
1. 概述STM32有两个看门狗,一个是独立看门狗,另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬。一般情况下,使用频次较高是独立看门狗,也即是通常意义的看门狗。2. 独立看门狗(IWDG)一个12位的递减计数器,最大值为0XFFF,当计数器的值从某个值一直减到0的时候,系统就会产生一个复位信号,即IWDG_RESET。如果在计数没减到0之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作.看门狗时钟独立看门狗的时钟由独立的RC振荡器LSI提供,即使主时钟发生故障它仍然有效,非常独立。LSI的频率一般在30~60KHZ之间,
发表于 2019-09-12
秉火429笔记之十二 看门狗
秉火429笔记之十五 DMA--直接存储区访问
1. 简介直接存储器访问 (DMA) 用于在外设与存储器之间以及存储器与存储器之间提供高速数据传 输。可以在无需任何 CPU 操作的情况下通过 DMA 快速移动数据。这样节省的 CPU 资源可 供其它操作使用。从硬件层次上来说,DMA控制器是独立于Cortex-M4内核的,有点类似GPIO、USART外设一般,只是DMA的功能是可以快速移动内存数据。STM32F4xx系列的DMA支持外设到存储器传输、存储器到外设传输和存储器到存储器传输三种传输模式。这里的外设一般指外设的数据寄存器,比如ADC、SPI、I2C、DCMI等等外设的数据寄存器,存储器一般是指片内SRAM、外部存储器、片内Flash等等。外设到存储器传输。比如进行ADC采
发表于 2019-09-12
秉火429笔记之十五 DMA--直接存储区访问
秉火429笔记之十四 USART--串口通信
1. 串口通讯协议简介串口通讯(Serial Communication)是一种设备间常用的串行通讯方式,因为简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。1.1 物理层串口通讯的物理层有很多标准及变种,我们主要讲解RS-232标准 ,RS-232标准主要规定了信号的用途、通讯接口以及信号的电平标准。两个通讯设备的“DB9接口”之间通过串口信号线建立起连接,串口信号线中使用
发表于 2019-09-12
秉火429笔记之十四 USART--串口通信
16F870单片机的中断应用程序
; Filename: WK_PCHG.asm *; Date: Mar/13/2001 *;**********************************************************************list p=16f870#include <p16f870.inc>; __CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _RC_OSC & _WRT_ENABLE_ON & _LVP_OFF & _CPD_OFFFLAG EQU 0x20Var1 EQU 0x21Var2 EQ
发表于 2019-10-16
小广播
何立民专栏 单片机及嵌入式宝典

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

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