STM32中SysTick延时中断的优先级调整*
2017-04-14郑忠楷蒋学程罗志灶
单片机与嵌入式系统应用 2017年3期
郑忠楷,蒋学程,罗志灶
(闽江学院 物理学与电子信息工程系,福州 350108)
STM32中SysTick延时中断的优先级调整*
郑忠楷,蒋学程,罗志灶
(闽江学院 物理学与电子信息工程系,福州 350108)
本文就STM32单片机的SysTick延时中断及中断处理中进行中断优先级调整进行了一些讨论,主要是在同时存在串口中断时的情况下进行研究,并具体分析了一个Delay_us()库函数和串行中断响应的程序实例。在多个中断并存的情况下,SysTick延时中断的优先级直接影响中断的CPU/系统资源占用和服务响应时间,因此对其研究很有必要。
SysTick中断、中断优先级、单片机、延时
引 言
自从ARM公司2007年首次推出Cortex内核,意法半导体公司推出了一款高性能的基于Cortex-M3内核的32位的STM32[1-3],其主频可以达到72 MHz,有着十分方便易用的库函数给用户使用,但同时也带来了许多意想不到的问题。比如说其中最常用到的SysTick延时中断和与其相关的Delay_us()库函数,在使用的时候就有很多需要注意的地方,不然有时会造成意外的错误,甚至有死机的可能。本文主要针对SysTick中断在有串口中断存在时如何调整二者优先级进行研究和讨论。
1 STM32固件库简介
STM32固件库是STM32库函数集合的总称,STM32固件库可以从意法半导体官网下载。固件库首先将MCU的各个设备中所有寄存器的配置字进行预先定义,然后封装在对应的结构体或枚举变量中,待用户调用对应的固件库函数时,会根据用户传入的参数从这些封装好的结构体或枚举变量中取出对应的配置字,最后写入寄存器中,完成对底层寄存器的配置。……
登录APP查看全文
