STM32F104VG (一)中断与外部中断
一、基础知识
1.ARM的中断优先级分硬件优先级和软件优先级两种
当中软件优先级又由抢占优先级和响应优先级组成
2.中断的优先级採用编号小优先的原则。
3.普通情况:
1).假设设定了软件优先级。先看软件优先级:
具有高抢占式优先级的中断能够在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套。或者说高抢占式优先级的中断能够嵌套低抢占式优先级的中断。
当两个中断源的抢占式优先级同样时,这两个中断将没有嵌套关系,当一个中断到来后,假设正在处理还有一个中断,这个后到来的中断就要等到前一个中断处理完之后才干被处理。假设这两个中断同一时候到达,则中断控制器依据他们的响应优先级高低来决定先处理哪一个。
2).后看硬件优先级
假设他们的抢占式优先级和响应优先级都相等,则依据他们在中断表中的排位顺序决定先处理哪一个。
4. 特殊情况
也就是说stm32f4的优先级分组情况採用NVIC_PriorityGroup_x,
x=0~4表示。相应例如以下表格:
[10:8] |
切割点 |
抢占优先级位 |
响应优先级位 |
抢占优先级数 |
响应优先级数 |
0b011(组4) |
xxxx |
[7:4] |
none |
16(0~15) |
1(0~0) |
0b100(组3) |
xxx.y |
[7:5] |
[4] |
8 |
2 |
0b101(组2) |
xx.yy |
[7:6] |
[5:4] |
4(0~3) |
4(0~3) |
0b110(组1) |
x.yyy |
[7] |
[6:4] |
2 |
8 |
0b111(组0) |
yyyy |
none |
[7:4] |
1 |
16 |
二、详细实例
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGl0empt/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGl0empt/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
{
if(EXTI_GetITStatus(EXTI_Line12) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line12); /* 清除中断标志位 */
//do something
}
if(EXTI_GetITStatus(EXTI_Line13) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line13); /* 清除中断标志位 */
//do something
}
if(EXTI_GetITStatus(EXTI_Line14) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line14); /* 清除中断标志位 */
//do something
}
if(EXTI_GetITStatus(EXTI_Line15) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line15); /* 清除中断标志位 */
//do something
}
}
最新文章
- nginx 日志相关配置总结
- 图说函数模板右值引用参数(T&;&;)类型推导规则(C++11)
- 用orb-slam2跑RGB-D Example中的TUM Dataset
- OpenJudge4980:拯救行动//stl优先队列
- wpf:小问题总结
- [Leetcode][JAVA] Palindrome Partitioning II
- TestNG之执行测试类方式
- Foobar音乐播放器——最佳音乐播放器 - imsoft.cnblogs
- [HttpClient]SSL双向实例
- PHP导出MySQL数据到Excel
- 进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)
- JAVA基础编程50题(10-12题)具体解释
- CSS盒模型和margin重叠
- 前端到后台ThinkPHP开发整站(2)
- 策略模式--List排序
- Centos 配置eth0 提示Device does not seem to be present
- java-信息安全(八)-迪菲-赫尔曼(DH)密钥交换
- [转]关于ReentrantLock中线程读某个变量是否需要加锁
- 转换 transform
- python抓取数据,python使用socks代理抓取数据