STM32 中断学习Interrupt/Evens

发布者:快乐航程最新更新时间:2016-12-07 来源: eefocus关键字:STM32  中断学习  Interrupt  Evens 手机看文章 扫描二维码
随时随地手机看文章

1、NVIC的优先级概念 
   占先式优先级 (pre-emption priority): 
   高占先式优先级的中断事件会打断当前的主程序/中断程序运行— —抢断式优先响应,俗称中断嵌套。 
   副优先级(subpriority): 
   在占先式优先级相同的情况下,高副优先级的中断优先被响应; 
   在占先式优先级相同的情况下,如果有低副优先级中断正在执行, 高副优先级的中断要等待已被响应的低副优先级中断执行结束后才 能得到响应——非抢断式响应(不能嵌套)。 
2、判断中断是否会被响应的依据 
    首先是占先式优先级,其次是副优先级; 
    占先式优先级决定是否会有中断嵌套; 
    Reset、NMI、Hard Fault 优先级为负(高于普通中断优先级)且不可调整。 
3、STM32中用到的Cortex-M3寄存器说明 
   在STM32中用到了Cortex-M3定义的三组寄存器,有关这三组寄存器的说明不在STM32的技术手册中,需要参考ARM公司发布的Cortex-M3 Technical Reference Manual (r2p0)。 
   在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下: 
   1)、NVIC寄存器组 
       STM32的固件库中有如下定义: 
       typedef struct 
       { 
         vu32 ISER[2]; 
         u32 RESERVED0[30]; 
         vu32 ICER[2]; 
         u32 RSERVED1[30]; 
         vu32 ISPR[2]; 
         u32 RESERVED2[30]; 
         vu32 ICPR[2]; 
         u32 RESERVED3[30]; 
         vu32 IABR[2]; 
         u32 RESERVED4[62]; 
         vu32 IPR[11]; 
       } NVIC_TypeDef; 
       它们对应ARM手册中的名称为 
       ISER = Interrupt Set-Enable Registers 
       ICER = Interrupt Clear-Enable Registers 
       ISPR = Interrupt Set-Pending Register 
       ICPR = Interrupt Clear-Pending Register 
       IABR = Active Bit Register 
       IPR = Interrupt Priority Registers 
       每个寄存器有240位,以Interrupt Set-Enable Registers说明,ISER[0]对应中断源0~31,ISER[1]对应中断源32~63,STM32只有60个中断源,所以没有ISER[2:7]。 
       参考STM32技术参考手册中的中断向量表,中断源的位置为: 
       位置0 - WWDG = Window Watchdog interrupt 
       位置1 - PVD = PVD through EXTI Line detection interrupt 
       位置2 - TAMPER = Tamper interrupt 
       ...... 
       位置58 - DMA2_Channel3 = DMA2 Channel3 global interrupt 
       位置59 - DMA2_Channel4_5 = DMA2 Channel4 and DMA2 Channel5 global interrupts 
   2)、系统控制寄存器组 
       STM32的固件库中有如下定义: 
       typedef struct 
       { 
         vuc32 CPUID; 
         vu32 ICSR; 
         vu32 VTOR; 
         vu32 AIRCR; 
         vu32 SCR; 
         vu32 CCR; 
         vu32 SHPR[3]; 
         vu32 SHCSR; 
         vu32 CFSR; 
         vu32 HFSR; 
         vu32 DFSR; 
         vu32 MMFAR; 
         vu32 BFAR; 
         vu32 AFSR; 
       } SCB_TypeDef; /* System Control Block Structure */ 
       它们对应ARM手册中的名称为 
       CPUID = CPUID Base Register 
       ICSR = Interrupt Control State Register 
       VTOR = Vector Table Offset Register 
       AIRCR = Application Interrupt/Reset Control Register 
       SCR = System Control Register 
       CCR = Configuration Control Register 
       SHPR = System Handlers Priority Register 
       SHCSR = System Handler Control and State Register 
       CFSR = Configurable Fault Status Registers 
       HFSR = Hard Fault Status Register 
       DFSR = Debug Fault Status Register 
       MMFAR = Mem Manage Address Register 
       BFAR = Bus Fault Address Register 
       AFSR = Auxiliary Fault Status Register 
   3)、系统时钟寄存器组 
       STM32的固件库中有如下定义: 
       typedef struct 
       { 
         vu32 CTRL; 
         vu32 LOAD; 
         vu32 VAL; 
         vuc32 CALIB; 
       } SysTick_TypeDef; 
       它们对应ARM手册中的名称为 
       CTRL = SysTick Control and Status Register 
       LOAD = SysTick Reload Value Register 
       VAL = SysTick Current Value Register 
       CALIB = SysTick Calibration Value Register

关键字:STM32  中断学习  Interrupt  Evens 引用地址:STM32 中断学习Interrupt/Evens

上一篇:STM32的内部温度传感器
下一篇:STM32 可编程电压监测器(PVD)

推荐阅读最新更新时间:2024-03-16 15:23

STM32 备份寄存器操作
STM32系列为处理器都有备份寄存器,他它们处于备份区域里,当VDD电源被切断,它们仍然由VBAT维持供电,当系统在待机模式下被唤醒,或者系统复位或电源复位是,它们都不会被复位。以实时时钟RTC为例,在上一篇文章中讲过,RTC处理依赖系统电源(VDD供电)外,还依赖者备份电源(VBAT供电),即使系统电源被切断,只要备份电源还在,RTC就能继续工作。备份寄存器也是依赖者备份电源的。STM32都有备份寄存器,但是备份寄存器的数量却不一定相同!对于大容量的微处理器系列来说,它有着42个16位的寄存器,而中小容量的微处理器却只有10个16为的寄存器。我使用的微处理器是STM32F103ZET6,属于大容量系列,所以它他有着42个备份寄存器
[单片机]
<font color='red'>STM32</font> 备份寄存器操作
STM32的输入捕获
实验目的: 在串口调试助手上打印出按键按下的时间 实验步骤: 实验程序: /*******************************timer.c********************************/ #include sys.h #include stm32f4xx.h extern u8 TIM5CHA1_CAPTURE_STA; extern u16 TIM5CHA1_CAPTURE_VAL; /* 本示例的作用就是, 当按键按下时,每次输入捕获的时间差, 然后从串口调试助手中打印出其时间差; */ /*
[单片机]
STM32 Option Bytes位 重置为出厂设置
TM32 Option Bytes位 重置为出厂设置 JLINK 按照说明,在IAR安装目录下找到指定的运行程序JLinkSTM32.exe(D:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\arm\bin)在JLink与板子有效连接的情况下运行此程序
[单片机]
<font color='red'>STM32</font> Option Bytes位 重置为出厂设置
STM32学习日志——按键的单击、双击、长按
前两天去面试的时候,面试官看了我的业余小设计,问了个问题,怎么实现按键的双击,当时的设计只有单击和长按的功能,当时没回答出来。回来后看了下资料,整理并尝试了一下。 大概的思路是这样的,单击与长按的区别在于按下后弹起时间的长短,如果按键一直按着,且大于一个时间值,判断为长按; 否则为非长按,那么就要继续判断是单击还是双击,区别在于弹起后的一个较短时间内是否再次被按下,如果是,则为双击,反之则为单击。 不知道大佬们有没有更好的办法,可以指导下吗? 主函数
[单片机]
PIC32MZ tutorial -- OC Interrupt
  In my previous blog PIC32MZ tutorial -- Output Compare , I shows how to apply Output Compare without interrupt to generate PWM signal. I also tried the Output Compare interrupt. I selected OC to be PWM mode without fault pin (OCM = 110 ) and enable its interrupt. Below is the initialization of OC. void OC1_Init(vo
[单片机]
STM32系统时钟配置笔记
前言 由于个人博客被攻击,现逐渐将博客内容搬运至CSDN,本文原写于2020年4月。 时钟笔记 本文为stm32时钟和中断笔记 时钟树 可以通过时钟树来大致了解配置时钟的流程,可以更加清晰了解各个时钟之间的关系 名词解释 HSE:HSE 高速外部时钟信号。HSE 是高速的外部时钟信号,可以由有源晶振或者无源晶振提供,频率从 4-16MHZ不等。当使用有源晶振时,时钟从 OSC_IN 引脚进入, OSC_OUT 引脚悬空。当选用无源晶振时,时钟从 OSC_IN 和OSC_OUT 进入,并且要配谐振电容。HSE 最常使用的就是 8M 的无源晶振。当确定 PLL 时钟来源的时候, HSE 可以不分频或者 2 分频,这个由时
[单片机]
<font color='red'>STM32</font>系统时钟配置笔记
打造新一代智能电子产品 ST正式加入ARM mbed项目
近日,ARM®与意法半导体(STMicroelectronics, 以下简称ST) 共同宣布,ST已正式加入ARM mbed™项目。该项合作将允许开发者在使用ST基于ARM Cortex®-M系列处理器STM32微控制器系列产品进行开发的同时,自由获取mbed软件、开发工具及在线合作平台,帮助他们实现打造新一代智能电子产品的愿景。 ARM mbed是一项专为支持物联网发展、满足新一代专业开发者需求而设立的产业合作项目。它提供免费开发工具与基础开源软硬件元件,帮助迅速开发基于ARM架构的创新设备。与此同时,该项目能将连接器、传感器与云端服务软件组件及工具更轻松地加以整合,为开发商和合作伙伴打造一个动态的、合作的生态系统。 S
[单片机]
stm32相关位操作
stm32 , ,l=与&=~操作 0x0000 0001 4//右移四位 =0x0000 1000 0x0000 1000 4//左移四位 =0x0000 0001 l=操作 0xxxx xxxx l= 0x0000 0001 =0xxxxx xxx1 //保留数据置1的位 &=~操作 0xxxxx xxxx &=~ 0x000 0001 =0xxxxx xxxx &=01111 1110 //先取反再相与 =0xxxxx xxx0 //使原来置1的位置0,也就是取反
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved