1 / 23
文档名称:

STM32 中断 定时器公开课获奖课件赛课一等奖课件.ppt

格式:ppt   大小:433KB   页数:23页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STM32 中断 定时器公开课获奖课件赛课一等奖课件.ppt

上传人:读书百遍 2025/5/6 文件大小:433 KB

下载得到文件列表

STM32 中断 定时器公开课获奖课件赛课一等奖课件.ppt

相关文档

文档介绍

文档介绍:该【STM32 中断 定时器公开课获奖课件赛课一等奖课件 】是由【读书百遍】上传分享,文档一共【23】页,该文档可以免费在线阅读,需要了解更多关于【STM32 中断 定时器公开课获奖课件赛课一等奖课件 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。STM32的中断、定期器
暨南大学电子设计大赛培训资料
7月24曰 彭煜
目录
什么是“中断”?
1
STM32中的优先级概念
2
STM32外部中断例程讲解
3
STM32的定期器简介
4
STM32定期器例程讲解
5
什么是“中断”?
中断服务程序
发申请
中断服务程序
发申请


CPU
CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU临时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。
EG:吃饭时忽然手机铃响…
中断示意图
STM32中的优先级概念
STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。
1. 何为占先式优先级(pre-emption priority)
    高占先式优先级的中断事件会打断目前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。
2. 何为副优先级(subpriority)
    在占先式优先级相似的状况下,高副优先级的中断优先被响应;
    在占先式优先级相似的状况下,假如有低副优先级中断正在执行,高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应—非抢断式响应(不能嵌套)。
3. 判断中断与否会被响应的根据
    首先是占先式优先级,另一方面是副优先级;
    占先式优先级决定与否会有中断嵌套;
4. 优先级冲突的处理
    具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断的嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。
    当两个中断源的抢占式优先级相似时,这两个中断将没有嵌套关系,当一种中断到来后,假如正在处理另一种中断,这个后到来的中断就要等到前一种中断处理完之后才能被处理。假如这两个中断同步抵达,则中断控制器根据他们的响应优先级高下来决定先处理哪一种;假如他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位次序决定先处理哪一种。
STM32中的优先级概念
5. stm32中对中断优先级的定义
    STM32中指定中断优先级的寄存器位有4位,这4个寄存器位的分组方式如下:
第0组:所有4位用于指定响应优先级 第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级 第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级 第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级 第4组:所有4位用于指定抢占式优先级
详细怎样设置在例程中详细讲解!
STM32中的优先级概念
STM32外部中断
STM32单片机80个通用I/O端口连接到19个外部中断/事件源上。左图为STM32单片机通用I/O与外部中断的映射关系:PAx、PBx 、PCx 、PDx和PEx端口对应的是同一种外部中断/事件源EXTIx(x:0-15)。
EXTI_Line值:P99
NVIC_IRQChannel值:P166
void GPIO_Configuration(void) //输入输出管脚配置
{
GPIO_InitTypeDef GPIO_InitStructure;
//配置输出脚PC0控制LED灯
= GPIO_Pin_0;
= GPIO_Speed_50MHz;
= GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
//配置输入脚PA0控制按键
= GPIO_Pin_0;
= GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
STM32外部中断例程讲解
void NVIC_Configuration(void) //嵌套向量中断控制器配置
{
NVIC_InitTypeDef NVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
//选择优先级组别
= EXTI0_IRQn;
//选择中断通道:EXTI线0中断,由于按键连接的是PA0脚
= 0;
//0级抢占式优先级
= 0;
//0级副优先级
= ENABLE;
//使能引脚作为中断源
NVIC_Init(&NVIC_InitStructure); //调用NVIC_Init固件库函数进行设置
}
STM32外部中断例程讲解
固件中P166!
void EXTI_Configuration(void)
{
//调用固件库中的GPIO_EXTILineConfig函数,
//其中两个参数分别是中断口和中断口对应的引脚号
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);

= EXTI_Line0;
//将中断映射到中断/事件源Line0
= EXTI_Mode_Interrupt;
//中断模式
= EXTI_Trigger_Falling
//设置为下降沿中断
= ENABLE;
//中断使能,即开中断
EXTI_Init(&EXTI_InitStructure);
//调用EXTI_Init固件库函数,将构造体写入EXTI有关寄存器中
}
STM32外部中断例程讲解
固件中P99!