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
}
}
STM32F104VG (一)中断与外部中断的更多相关文章
- STM32——外部中断EXIT实现
外部中断实现步骤: 一.初始化,包括:1.AFIO时钟中断和GPIO时钟使能: 2.GPIO初始化 ...
- [Arduino] 外部中断
原文:http://www.arduino.cn/thread-2421-1-1.html 1.什么是中断? 试想一下,你正在家里吃饭,这时传来了敲门声,虽然你巨饿,虽然面前全是山珍海味,但此时你不得 ...
- STM8的中断系统以及外部中断详解
STM8具有最多32的中断系统,在中断的处理上类似于cortexm系列的芯片,首先是每个中断的向量都是固化在系统内部的,用户需要向相应的中断向量flash位置写入中断处理函数,其二,每个中断向量都具有 ...
- Stm32CubeMX5 配置 外部中断
实验使用连接PA8引脚的按键触发中断,外部中断使用双边沿触发,这样就可以检测按键按下与松开,当按键按下时点亮LED, 当按键松开是关闭LED,在中断服务函数中只置位相应的标志,在main函数中具体处理 ...
- 转载:STM32之中断与事件---中断与事件的区别
这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套.图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚 ...
- STM32f103之外部中断
一.背景 有个需求,IO口检测上升沿,然后做相应的动作.在此记录STM32F103的外部中断结构及配置方法, 以备下次快速上手使用. 有许多不太明白,又是老司机(:-D)帮忙,真的是站在别人的肩膀上会 ...
- STM32之EXTI——外部中断
互联网的广大网友,大家早上中午晚上好.EXTI...故名思义..EX表外,出..I表示Intrrupt..所以合起来就是外部中断...说到这..我觉得我最近的六级水平(背单词)又进了一步,稍微自夸了下 ...
- 转别人的 STM32外部中断使用注意事项
前言:这些问题都是我之前在工作中遇到的,后来觉得需要总结,自己记忆不好,所以在这个给自己打个mark. 一:触发方式 STM32 的外部中断是通过边沿来触发的,不支持电平触发: 二:外部中断分组 ST ...
- STM32外部中断初理解
PA0,PB0...PG0--->EXTI0 PA1,PB1...PG1--->EXTI1 ....... PA15,PB15...PG15--->EXTI15 以上为GPIO和中断 ...
随机推荐
- 初学者对C++的切身感受
上周和一同学聊起了当前一些比较流行且运用广范的编程语言,苹果的IOS比起其它语言 来说更加言简意赅,简单明了,并且他现在也打算一直弄IOS.我之前一直是用C语言和 GNU ARM汇编语言,因为这两种语 ...
- AIX RAC 安装失败完全卸载
1,删除软件安装目录 rm -rf /u01/app 2,删除以下目录内容 rm -rf/tmp/.oracle rm -rf/tmp/* rm -rf/tmp/ora* rm -rf/var/tmp ...
- Pycharm 设置python文件自动生成头部信息模板
设置头部信息路径: 打开File—Settings—Editor—File and Code Templates—Python Script 输入要自动生成的头部信息模板 这样,新建py文件就会自动生 ...
- CAD使用SetxDataLong写数据(com接口)
主要用到函数说明: MxDrawEntity::SetxDataLong 写一个long扩展数据,详细说明如下: 参数 说明 [in] BSTR val 字符串值 szAppName 扩展数据名称 n ...
- DEBUG无法进入断点解决方法
18/08/17 任务栏:Tools->Options->Debugging->General->Require source files to exactly match t ...
- python pandas读写excel
import pandas as pd import numpy as np df = pd.read_csv("result.csv") # csv # df = pd.read ...
- 【Pytorch】关于torch.matmul和torch.bmm的输出tensor数值不一致问题
发现 对于torch.matmul和torch.bmm,都能实现对于batch的矩阵乘法: a = torch.rand((2,3,10))b = torch.rand((2,2,10))### ma ...
- Javascript创建对象几种方法解析
Javascript创建对象几种方法解析 Javascript面向对象编程一直是面试中的重点,将自己的理解整理如下,主要参考<Javascript高级程序设计 第三版>,欢迎批评指正. 通 ...
- Mysql对象
2.简介 2.1 存储过程 2.1.1什么是存储过程 存储过程就是一种类似函数的脚本,可以把多个sql语句组合起来,然后使用 call 存储过程名 来调用,从而执行这些SQL语句. 特点:一次编译,下 ...
- 基于PHP的微信支付教程
微信支付作为各大移动支付方式之一,本课程只要向大家介绍并使用微信支付的常用功能,进而集合到已有的项目中去,希望各位能够快速上手并掌握实战"干货". 出处至:汇智网 hubwiz. ...