中断流程总结
1 给GPIO和AFIO时钟使能
首先开始GPIO和AFIO的时钟 虽然EXTI属于外设 但是不需要配置AFIO
2 配置GPIO端口
注意在配置GPIO端口的时候要把输入模式改为上拉 这个在参考手册里面有详细说明
3 使用AFIO选择中断进入的GPIO口
注意单个AFIO对应的是每个GPIO所接入的相同引脚 意思是所有的0端口(GPIOA0和B0...)因此不能同时使用GPIO的A0和B0口
4 配置EXTI
下面是EXTI的所有函数 初始化EXTI 后四个函数为读取中断标志为 前两个在函数中使用 后两个在中断里面使用
初始化EXTI有下列选项 第一个选择使用的GPIO通道 第二个选择触发方式 是内部中断还是事件中断 第三个选择内部中断的方式 上升沿 下降沿或者都触发 最后一个是通道使能 使用通道需要使能ENABLE
5 配置NVIC
NVIVC使用之前 需要下面第一个函数来分组 NVIC有四个寄存器 表示0-5个组
初始化NVIC有以下函数
第一个函数选择要使能的NVIC通道
第二个为指定抢占优先级
第三个是响应优先级
第四个是通道使能
注:抢占优先级和响应优先级的取值由上面分组决定 当分组零是 抢占优先级寄存器为0个 所以取值为0 响应优先级有四个所以取值为0-16
全部配置好就在md.s启动文件里面找到对应的中断函数