STM32之中断管理

发布者:温雅如风最新更新时间:2018-12-03 来源: eefocus关键字:STM32  中断管理 手机看文章 扫描二维码
随时随地手机看文章

 关于STM32的中断,相信大家玩过单片机的朋友就知道,中断是MCU的一大优点,使MUC工作能够分清事情的”轻重缓急“ ,从而达到处理事情井井有条;


 今天就讲解下STM32-Cortex-M3内核的中断管理机制,其他处理器的也类似;M3中F103系列的有60个可屏蔽的中断和16个内核级别的中断;


 大家知道,操作一款MCU 其实实质就是操作的寄存器,而寄存器有机的结合起来就实现了特定的功能;中断系统也不例外,下面来认识一下中断系统中的几个重要的寄存器;


  1. ISER[8](Interrupt Set-Enable Registers),就是中断使能寄存器组,这个数组有8个成员,每个成员是32位的寄存器;写1有效,写0无效;


   2. ICER[8](Interrupt Clear-Enable Registers),就是中断清除使能寄存器组,这个数组有8个成员,每个成员是32位的寄存器;写1清除对应ISER寄存器上的寄存器位,写0无效;


  3. ISPR[8]:inerrupt Set-Pending Registers ,即中断挂起寄存器;写1有效,即可将正在执行的中断挂起,而去执行另外的高优先级别或者是同级别的中断,写0则无效;


 4. ICPR[8]:interrupt Clear-Pending Registers ,即中断清除挂起寄存器;写1有效,即可将正在执行的中断解挂起者,写0则无效;


 5.IABR[8]:Interrupt Active Bit Registers,中断激活标志位;标志位为1时,则对应该中断正在执行;


 6.IP[240]:Interrupt Priority Registers,中断优先级控制寄存器组,具有240个8bit的寄存器,每个寄存器对应着8个bits,而f103是M3内核,只用了前面60个寄存器;只用高4位【7:4】有效;


 7.SCB->AIRCR 寄存器,是一个设置中断优先级分组的寄存器,只10:8位 有效; 111 --对应 iP寄存器中0:4 ,即0位抢占位,4时响应优先级;


总而已之,要使用中断,必须先设置中断优先级分组,NVIC_PrioityGroupConfig();


再设置 NVIC_Init();



关键字:STM32  中断管理 引用地址:STM32之中断管理

上一篇:STM32中断源位置
下一篇:stm32时钟相关

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

基于STM32微控制器处理先进电机控制方法
    变频器的问世和先进的电机控制方法让三相无刷电机(交流感应电机或永磁同步电机)曾经在调速应用领域取得巨大成功。这些高性能的电机驱动器过去主要用于工厂自动化系统和机器人。十年来,电子元器件的大幅降价使得这些电机驱动器能够进入对成本敏感的市场,例如:家电、空调或个人医疗设备。本文将探讨基于ARM的标准微控制器如何在一个被DSP和FPGA长期垄断的市场上打破复杂的控制模式,我们将以意法半导体的基于Cortex-M3 内核的STM32系列微控制器为例论述这个过程。     首先,我们回顾一下电机控制的基本原理。在电机控制系统内,为什么处理器非常重要?我们为什么需要非常好的计算性能?毕竟,Nicolas Tesla在一个世纪前发明
[嵌入式]
STM32串口USART1中断接收和中断发送
  先贴出中断函数:    view plain copy   void USART1_IRQHandler(void){   IF (USART_GetiTStatus(USART1, USART_IT_RXNE) != RESET) {   USART_ClearITPendingBit(USART1, USART_IT_RXNE);   USART1_Buffer =USART_ReceiveData(USART1); //USART1_Buffesh是一个自己定义的接收数组   if(i 3){   SendFlag = 1;   }   }   if(USART_GetITStatus(USART1, USART_I
[单片机]
STM32 关于外部中断线、中断源和中断服务函数的问题
中断线问题: 上图可以看出,PA0、PB0...PG0共用的EXTI0中断线,PA1、PB1...PG1共用的EXTI1中断线,也就是 编程里面的(如下图库文件),对应16个中断线,后面三个是专用的中断线,不做讨论。 有人要问,假设:我设置的引脚是PB9和PE9都开启外部中断怎么办?小编告诉你,这还真办不了,我实测过。配置函数的时候后覆盖之前的函数的(如下图所示) 如果这样配置的话,会出现出货光电1的初始化覆盖掉编码盘的初始化,说白了就是编码盘的设置被覆盖掉了,结果是外部中断 出货光电1管脚会触发而编码盘就不起作用了,这也是STM32其中一个问题所在吧! 反过来,结果是外部中断 编码盘 管脚会触发 而 出货光电1管脚
[单片机]
<font color='red'>STM32</font> 关于外部<font color='red'>中断</font>线、<font color='red'>中断</font>源和<font color='red'>中断</font>服务函数的问题
STM32中USART 串口简单使用
  使用查询方式的USART:   设置时钟:   RCC_APB2Periph_AFIO 功能复用IO时钟   RCC_APB2Periph_GPIOA GPIOA时钟   RCC_APB2Periph_USART1 USART1时钟   你可以用   //使能串口1,PA,AFIO总线 RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1 ,ENABLE);   或直接   RCC_APB2PeriphClockCmd(RCC_APB2Periph_ALL,ENABLE); //全部APB
[单片机]
STM32存储器 — 关于STM32的存储器
当我们在完成某一个实验,当我们正庆幸的时候,我们不由得产生一种不安的想法——我们是否已经少许明白其中的种种细节? 尤其,当我们所有的事情都依赖于编译环境或Firmware,抑或他人的程序,而自己仅仅是Copy和Modify,以致Using。当你还是一个初学者的时候,或许不会太过于关注于此,但是要想提高自己对单片机、处理器原理的理解,并且希望走得更远的时候,您就需要关注更为详细的内部知识,您需要明白编译环境、Firmware等为你的默默贡献。 1 STM32系统结构 要想深刻理解STM32的存储器,需要首先知道STM32的系统结构。 如Figure 1,是STM32系统结构框图。 根据STM32 Referenc
[单片机]
<font color='red'>STM32</font>存储器 — 关于<font color='red'>STM32</font>的存储器
stm32的时钟设定
时钟图 // RCC_HSEConfig(RCC_HSE_OFF); // 关闭外部时钟 // RCC_HSEConfig(RCC_HSE_ON); // 开启外部时钟 // RCC_HSICmd(ENABLE); // 开启内部时钟 // RCC_HSICmd(DISABLE); // 开启内部时钟 // 双高级外设总线结构:高速APB(APB2)速度达到72MHz、低速APB(APB1)速度达到36MHz。 // 允许用户优化外设的使用(18MHz的SPI、4.5Mbps的USART、72MHz的PWM定时器、18MHz触发I/O口)。 // RCC_PLLCo
[单片机]
基于stm32的PWM输出呼吸灯(包括stm32呼吸灯代码)
硬件电路图: 我的收获: 这是STM32数据手册上对TIM3通用定时器复用功能重映象的描述,假设让PA6作为PWM输出,从图中可以看出PA6对应TIM3的通道1, 使能TIM3通道1的函数为 TIM_OC1Init();1 同样的,如果想要使能PA7,它对应的是TIM3的通道2,那么使能通道2的函数便是: TIM_OC2Init()1 以此类推,需要注意,使能不同相同定时器不同通道的函数是有一点小差别的,防止在程序中调用TIM_OC1Init()函数来使能TIM3通道2这种情况的发生。 注意看这里,假设使用的是TIM3的通道1,那么这里就要写成 TIM3-》CCR11 类似的如果用TIM3定时器的通道2,这里就要相应的
[单片机]
基于<font color='red'>stm32</font>的PWM输出呼吸灯(包括<font color='red'>stm32</font>呼吸灯代码)
基于STM32模拟UART串口通信
UART工作原理 UART即通用异步收发器,是一种串行通信方式。数据在传输过程中是通过一位一位地进行传输来实现通信的,串行通信方式具有传输线少,成本底等优点,缺点是速度慢。串行通信分为两种类型:同步通信方式和异步通信方式。 但一般多用异步通信方式,主要因为接受和发送的时钟是可以独立的这样有利于增加发送与接收的灵活性。异步通信是一个字符接着一个字符传输,一个字符的信息由起始位、数据位、奇偶校验位和停止位组成。 每一个字符的传输靠起始位来同步,字符的前面一位是起始位,用下降沿通知收方开始传输,紧接着起始位之后的是数据位,传输时低位在前高位在后,字符本身由5~8位数据位组成。 数据位后面是奇偶校验位,
[单片机]
基于<font color='red'>STM32</font>模拟UART串口通信
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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