异常:中断
各中断:
异常向量表(各个异常子程序入口)
__reset__handler(!!handler)
.s第一条栈顶指针
下一条reset handler
异常->
1.保护现场(压栈)
2.返回地址+4(压栈)(值为当前地址的下一个地址)
3.PC->ISR
4.出栈,读地址,读现场
ISR中断子程序
异常向量表(灰色异常,白色中断)
异常为系统中断,中断为用户中断
另一个MPU内存保护单元
中断嵌套控制器(NVIC)
1.优先级高可以打断优先级低的
①设置优先级组(0-4五组情况)
A)抢占式优先级
B)响应
0 1 2 3 4
抢占 0 1 2 3 4
0-1 0-3 0-7 0-15
响应 4 3 2 1 0
0-15 0-7 0-3 0-1
数字越小,优先级越高
抢占是用来中断嵌套的(抢占优先级高的可以打断优先级低的)
在抢占优先级相同的时候,同时两个中断到达,响应高的先执行,响应低的后执行
当都相同时,看表中的位置谁在前
1. 优先级组
2. 优先级(抢占、响应)
3. 使能
EXTI外部中断:
EXTI触发条件:
1. 上升沿
2. 下降沿
3. 双边沿
中断会引发中断子程序,要核
事件event会引发硬件与硬件之间的联动,不需要核
使用中断的方式实现案件控制灯颜色变换
PA0----EXTI0
IT interrupt中断
PWM脉宽调制(直流电机调速)用数字信号产生电压输出效果
占空比:有效电平/周期
总结:
1.中断模型
2. 中断布局
中断向量表(地址!!)
3. [中断管理
NVIC:1.设置优先级组2.抢占/响应3.使能
EXTI(23个,其中16个中断线,与GPIO组一一映射)
触发条件:上升沿/下降沿/双边沿