中断系统
以stm32f1xx为例
中断:
用于处理内、外部随机事件,现有程序被转向,转向其他程序。
中断的管理:
- 决定中断源是否有权请求以及有效的请求方式
- 解决中断源之 间的竞争问题
- 为请求寻址
stm32的中断功能主要有NVIC完成。
中断源分类:
外部中断 同步
内部中断 异步
中断一定要有中断服务函数,必须cpu介入。
中断优先级
决定中断同时发生时的先后问题
决定中断嵌套问题
用户如何编写中断函数:
- 对NVIC和外部中断源初始化
- 编写中断服务程序
注:清零和置位 - 向系统注册中断服务程序
外部中断概述:
- stm32的每个IO都可以作为外部中断输入。
- stm32的中断控制器支持19个外部中断/时间请求:
- 线0-15 对应外部IO的输入中断
- 16 连接到pvd输出
- 17 连接到rtc闹钟事件
- 18 连接到usb唤醒事件
每个外部中断线可以独立的配置触发方式
,触发,状态位
不同IO 映射到外部中断线关系需查表
16 * 7 =112
注:有7个中断服务器
配置过程:
- 初始化IO口为输入