1.STM32把指定中断优先级的寄存器位减少到4位,这4个寄存器位的分组方式如下:
第0组:所有4位用于指定响应优先级
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级
第4组:所有4位用于指定抢占式优先级
//设置NVIC
//NVIC_PreemptionPriority:抢占优先级
//NVIC_SubPriority :响应优先级
//NVIC_Channel :中断编号
//NVIC_Group :中断分组 0~4
//注意优先级不能超过设定的组的范围!否则会有意想不到的错误
2。优先级
1。高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。
2。抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。
3。抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。
4。如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行。
关键字:STM32 中断概念
引用地址:
STM32中断概念及理解
推荐阅读最新更新时间:2024-03-16 16:19
STM32之独立看门狗与窗口看门狗了解一下
STM32之独立看门狗与窗口看门狗总结 一、独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) 。 在键值寄存器(IWDG_KR)中写入 0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值 0xFFF 递减计数。当计数器计数到末尾 0x000 时,会产生一个复位信号(IWDG_RESET)。无论何时
[单片机]
如何画出STM32系列单片机的原理图
关于STM32F1系列单片机的一个常识: 看上图得知,根据Flash存储器的大小,把STM32F1分为了4种类型,分别是“低密度”“中密度”“高密度”“超高密度”,然后还有一种“互联型”。我们使用的STM32F103VET6的FLASH大小是512K,所以属于“高密度”型的。 我们这次要做的,就是把单片机STM32F103VET6的原理图画出来。 画的时候,要看STM32F103的datasheet。这个datasheet可以在ST的官网上找到。记住,是数据手册,不是参考手册。ST的官网是支持中文的,方便英文不好的朋友浏览。 打开ST的官方网站,看上图第一个红色矩形框里面的路径,依次到这一页。然后点击“数据手册”: 文
[单片机]
剖析STM32的FLASH和SRAM的使用情况
01前言 STM32片上自带FLASH和SRAM,简单讲FLASH用来存储程序的,SRAM是用来存储运行程序中的中间变量。本文详细分析下如何查看程序中FLASH和SRAM的使用情况。 本文开发工具: keil5 芯片: STM32F105VCT6 02FLASH和SRAM介绍 FLASH存储器又成为闪存,它与EEPROM都是掉电后数据不丢失的存储器,但是FLASH的存储容量都普遍的大于EEPROM,在存储控制上,最主要的区别是FLASH芯片只能一大片一大片地擦除,而EEPROM可以单个字节擦除。 SRAM是静态随机存取存储器。它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。STM32F1系列可以通过
[单片机]
STM32 Systick定时器在实现1us延时的问题与解决
问题: 使用systick_config()函数来实现计数,这个函数在下面代码中的 SysTick_CTRL_TICKINT_Msk 开启了中断。不论系统时钟为72Mhz或36Mhz若设置STM32每10us进入一次中断,计时是可以的;而每1us进入中断,由于中断指令较多,那么程序就会困在中断里出不来。 static __INLINE uint32_t SysTick_Config(uint32_t ticks) { if (ticks SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */
[单片机]
stm32 串口发送数据第一字节丢失
使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。 查阅stm32f10x参考手册,找到这样一句话: TC:发送完成 当包含有数据的一帧发送完成后,由硬件将该位置位。如果USART_CR1中的TCIE为1,则产生中断。由软件序列清除该位(先读USART_SR,然后写入USART_DR)。TC位也可以通过写入0来清除,只有在多缓存通讯中才推荐这种清除程序。 0:发送还未完成; 1:发送完成。 注意到这一句:由软件序列清除该位(先读USART_SR,然后写入USART_DR)。 也就
[单片机]
如何将STM32单片机中的函数调用到入口参数
STM32—数组作为被调用函数的入口参数时,要两个条件, 1:数组首地址 2:数组长度 在被调用函数中,比如把数据保存到数组pbuffer[ ]中,那么在入口参数定义时要定义成指针u8 *pbuffer, 而在调用时,比如要保存到tab[ ]中,要在入口参数处强制转换成(u8 *)tab
[单片机]
STM32低功耗状态的引脚配置
在STM32进入低功耗状态时,如果闲置||或者是其他的IO没有配置好。也将会增加不必要的功耗;所以在做低功耗设计的时候需要将闲置(保证系统稳定,其他的引脚据情况而定)全部设置为模拟输入配置。具体如下图所示,由此可以实现IO零消耗。
[单片机]
基于STM32的光学指纹识别系统模块电路设计
0 引言 随着电子信息技术应用面日益拓展,不少场合需要对特定用户群体进行身份识别或身份记录,如门禁系统、考勤系统、安全认证系统等,在各种系统中运用的技术形式多样,如视网膜识别、面相识别、指纹识别、RFID 射频识别应用等。其中,生物特征识别方式以其方便性强、安全性高等特点得到了越来越多人的认可和接受,特别是指纹识别技术方式,现已发展成为应用最广泛的生物识别技术之一。因此,研究基于嵌入式架构的指纹识别系统具有现实意义和广阔的应用前景。 1 系统整体结构 系统采用光学指纹传感器(内建格科微电子有限公司的光学GC0307 CMOS 图像采集芯片)与ARM Cortex M3 内核意法半导体公司的32 位高性能单片机
[单片机]