项目四 按键控制设计与实现nn任务9 中断方式的按键控制设计与实现目标n使用全国技能大赛“嵌入式应用技术与开发”赛项的核心板,通过程序控制STM32F103VCT6的GPIO口输入输出和STM32的中断,实现按键控制的设计、运行与调试。
任务要求
n在任务8按键控制LED电路基础上,无键按下时,CPU正常工作,不执行按键识别程序;
n有键按下时,产生中断申请,CPU转去执行按键识别程序;n其它功能同任务8功能一样。
STM32
项目四 按键控制设计与实现nnSTM32中断中断是STM32的核心技术之一,要想用好STM32,必须掌握好中断。STM32的中断通道和中断向量
n在Cortex-M3内核中集成了中断控制器和中断优先级控制寄存器,Cortex-M3内核支持256个中断,其中包含了16个内核中断(也称为系统异常)和240个外部中断,并具有256级可编程的中断优先级设置。
n其中,个别异常的优先级被定死外,其它的优先级都是可编程的。nSTM32有84个中断,包括16个Cortex-M3内核中断线和68个可屏蔽中断通道,具有16级可编程中断优先级的设置(仅设置8位中的高4位)。
nCortex-M3内核的16个中断通道对应的中断向量,如表4-6所示。n部分可屏蔽中断通道对应的中断向量,如表4-7所示。
STM32
项目四 按键控制设计与实现nSTM32中断STM32的外部中断nSTM32的每一个GPIO引脚都可以作为外部中断的中断输入口,也就是都能配置成一个外部中断触发源。
nSTM32F103的中断控制器支持19个外部中断(对于互联型产品是20个)事件请求。
nSTM32根据GPIO端口的引脚序号不同,把不同GPIO端口、同一个序号的引脚组成一组,每组对应一个外部中断/事件源(既中断线)EXTIx(x:0~15),比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,依此类推,我们就能将众多中断触发源分成16 组。
STM32
项目四 按键控制设计与实现STM32中断nGPIO与外部中断的映射关系,如右图所示。
STM32
项目四 按键控制设计与实现nSTM32中断STM32的中断优先级nSTM32内核有两个中断优先级的概念,分别是抢占优先级和响应优先级(也称为子优先级),每个中断源都需要被指定这两种中断优先级。
n具有高抢占优先级的中断,可以在具有低抢占优先级的中断处理过程中被响应,既中断嵌套。
nCortex-M3中定义了8bit(位)用于设置中断源的优先级,STM32只使用了高4位,这4位的中断优先级控制位分成2组。从高位开始,前面是定义抢占优先级的位,后面位用于定义响应优先级。
nSTM32中断优先级可以设置为5个分组的一种,如表4-8所示。
STM32
相关推荐: