首页 > 其他分享 >STM32 第16章STM32中断应用概览

STM32 第16章STM32中断应用概览

时间:2024-10-23 14:19:32浏览次数:3  
标签:NVIC 优先级 16 中断 概览 STM32 Offset Interrupt uint32

时间:2024.10.23

一、学习内容

1.异常类型

1.1中断简介

STM32中断非常强大,每个外设都可以产生中断,因此中断是一个公共的部分。

在本章讨论中,如无特别说明,异常就是中断,中断就是异常

1.2中断类型

系统异常,体现在内核水平(Cortex-M3)

外部中断,体现在外设水平

有关系统异常和中断的清单查阅参考手册第9章的向量表部分

STM32参考手册-9中断和事件-表55

TIPS:

1.在这个向量表中,灰色部分是内核型中断(系统异常)10个,白色的表示是外设型中断(外部中断)60个

2.优先级数字越小,优先级越高

2.NVIC简介

 2.1NVIC简介

嵌套向量中断控制器。属于内核外设,管理着包括内核和片上所有外设的中断相关的功能。

2.2两个重要的文件

core-cm3.h和misc.h

2.3NVIC详细功能介绍在哪里找到

文件:STM32F10xxx Cortex-M3编程手册-英文版

参考手册-9中断与事件里只有简略的介绍

2.4NVIC寄存器结构体

打开工程-USER-main.c下方的core_cm3.h

/** @addtogroup CMSIS_CM3_NVIC CMSIS CM3 NVIC
  memory mapped structure for Nested Vectored Interrupt Controller (NVIC)
  @{
 */
typedef struct
{
  __IO uint32_t ISER[8];                      /*!< Offset: 0x000  Interrupt Set Enable Register           */
       uint32_t RESERVED0[24];                                   
  __IO uint32_t ICER[8];                      /*!< Offset: 0x080  Interrupt Clear Enable Register         */
       uint32_t RSERVED1[24];                                    
  __IO uint32_t ISPR[8];                      /*!< Offset: 0x100  Interrupt Set Pending Register          */
       uint32_t RESERVED2[24];                                   
  __IO uint32_t ICPR[8];                      /*!< Offset: 0x180  Interrupt Clear Pending Register        */
       uint32_t RESERVED3[24];                                   
  __IO uint32_t IABR[8];                      /*!< Offset: 0x200  Interrupt Active bit Register           */
       uint32_t RESERVED4[56];                                   
  __IO uint8_t  IP[240];                      /*!< Offset: 0x300  Interrupt Priority Register (8Bit wide) */
       uint32_t RESERVED5[644];                                  
  __O  uint32_t STIR;                         /*!< Offset: 0xE00  Software Trigger Interrupt Register     */
}  NVIC_Type;                                               
/*@}*/ /* end of group CMSIS_CM3_NVIC */

 书P131代码清单16-1 NVIC结构体定义,来自固件库头文件:core_cm3.h

 2.5NVIC固件库函数

打开工程-FWLIB-misc.c-misc.h-找到对应的NVIC固件库函数

/** @defgroup MISC_Exported_Functions
  * @{
  */

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);
void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState);
void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource);

 

3.优先级的定义

中断优先级数字越小,优先级越高

3.1优先级设定

NVIC->IPRx

3.2优先级分组

主优先级=抢占优先级

标签:NVIC,优先级,16,中断,概览,STM32,Offset,Interrupt,uint32
From: https://blog.csdn.net/2201_75297369/article/details/143177585

相关文章

  • P8816 [CSP-J 2022] 上升点列 题解
    最长上升子序列根据题目中,每个坐标的横纵坐标均单调递增,所以明显可以使用最长上升子序列.定义状态$f_{i,p}$,表示正在节点$i$时,还剩下$p$次插入机会,所能达到的最大长度.定义变量$dis=|x_i-x_j|+|y_i-y_j|-1.$,表示$i$到$j$节点至少要插$dis$个节点.为什么要$-1$......
  • ARC165F题解
    前言\(2024.10.19\)日校测\(T4\),思维太庙,被薄纱了,遂哭弱,写题解以记之。简要题意给你一个长度为\(2n\)的序列\(A,\foralla_i\in[1,n]\),其中\(1\)到\(n\)每个数都出现了两次,现在需要把相同的两个数排到一起,每次操作只能交换相邻两个数,在保证操作次数最小的情况下求出现......
  • Python酷库之旅-第三方库Pandas(162)
    目录一、用法精讲741、pandas.Period.month属性741-1、语法741-2、参数741-3、功能741-4、返回值741-5、说明741-6、用法741-6-1、数据准备741-6-2、代码示例741-6-3、结果输出742、pandas.Period.ordinal属性742-1、语法742-2、参数742-3、功能742-4、返回值......
  • 极狐GitLab 发布安全版本16.10.10, 16.9.11, 16.8.10, 16.7.10, 16.6.10, 16.5.10, 16
    近期,极狐GitLab针对16.x版本正式推出安全版本16.10.10,16.9.11,16.8.10,16.7.10,16.6.10,16.5.10,16.4.7,16.3.9,16.2.11,16.1.8,16.0.10,用来减缓安全漏洞CVE-2024-45409带来的安全风险。极狐GitLab正式推出针对GitLabCE老旧版本免费用户的GitLab专业升级服......
  • STM32第15章 RCC-使用HSE/HSI配置时钟
    时间:2024.10.21-10.23参考资料:《零死角玩转STM32》“RCC-使用HSE/HIS配置时钟”章节TIPS:从前面的历程中我们知道,程序在启动的时候会执行汇编文件,汇编文件里会调用System_Init(固件库编程的函数),它里面会把时钟初始化成72M,因此前面我们在用固件库写程序的时候,有关时钟这一部......
  • 16章1节:机器学习和人工智能的基础知识
    机器学习是计算机科学与统计学的交叉领域,其核心目的是通过自主学习、预测或判断,建立并优化算法模型,用于处理未知数据集。随着大数据时代的来临,机器学习在医疗、生物、金融、工业等多个领域展现了强大的应用潜力,尤其在医学领域,机器学习被广泛用于诊断、预后预测、疾病风险评估......
  • 信号模拟源参数下发:一帧ROM数据+一帧PN16数据+1000帧AOC数据
    背景:裸数据的封装,通过PCIE通道传输,需要进行封装和提取。白话思路:分别开启模块的使能信号,使用状态机控制其使能的开启,随着地址增加,输出参数值。遇到的几个问题:(1)PN16程序设置使能开启接口(ena_1),ROM自带使能开启接口;(2)状态机的控制信号:地址控制使能的开启;(3)使能信号总是需要提......
  • Linux常用命令大全超详细知识点概览
    我是小粥学姐,下面是Linux常用命令大全哦,先上目录。章节目录一、文件和目录管理命令二、文件内容查看与编辑命令三、文件搜索与查找命令四、系统管理与监控命令五、网络管理与通信命令六、用户管理与权限设置命令七、打包压缩与备份命令八、其他实用命令一、文件......
  • 代码随想录算法训练营day22和day23 | 77. 组合 216.组合总和III 17.电话号码的字母
    学习资料:https://programmercarl.com/回溯算法理论基础.html回溯法backtracking:for循环控制递归数量,暴力搜索:组合、切割、子集、排列、棋盘今天学了组合和切割可以画个N叉树的图来帮助理解回溯过程组合又包括1.单个数组(要加startIndex参数)或多个数组;2.数组内有无重复元素;3.数......
  • P4516
    sb大括号,卡我114514ms#include<bits/stdc++.h>usingnamespacestd;constintmaxn=100005,maxk=104,mod=1000000007;intf[maxn][maxk][2][2];intg[maxk][2][2];intlim[maxn];vector<int>G[maxn];inlinevoid__a(int&x){if(x>=mod)x-=mod......