×
单片机 > 单片机程序设计 > 详情

STM32之中断管理

发布时间:2020-09-03 发布时间:
|

 关于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  中断管理

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析