【STM32F103】中断综述

一、中断内核: 

 STM32的中断很强大,每个外设都可以产生中断,F103在内核水平上搭载了异常响应系统,系统异常有8个(算上RESET和HardFault也就10个),外部中断有60个,但是根据NVIC(嵌套向量中断控制器,控制整个芯片中断相关的功能),IP(中断优先级寄存器)数组中预留了240个位置(NVIC结构如上图),可见眼光之远,用于扩展,这是STM32F103用不到这么多。

如果以后要找跟内核相关的函数,都存在core_cm3.c和misc.c中,包括NVIC的函数的声明,但是其具体的库函数内容并不是和固件库头文件core_cm3.h一致(不在core_cm3.c),而是放在库函数的misc.c中,这点需要注意。

二、中断优先级的定义和分组:

 

 三、中断编程的顺序:

1、使能中断请求

如何使能,需要配置哪个寄存器?

注意:这里与NVIC中的中断使能寄存器不是等同概念,中断使能可以理解成有2个大门,外设使能(小门,比如串口有发送完成中断,接收完成中断,这两个中断由串口控制寄存器的相关中断使能位来控制)和NVIC(大门,接受请求)。

 

2、配置中断优先级分组

如何配置,需要配置哪个寄存器?

通过NVIC_PriorityGroup函数。

 

3、配置NVIC寄存器,初始化NVIC_InitTypeDef;(定义在misc.h中,成员如下)

1-NVIC_IRQChannel:指定中断源(中断类型列表参考STM32F10X.H中已列举给出)             

2-NVIC_IRQChannelPreemptionPriority:抢占优先级(根据分组表和选择来给) 

3-NVIC_IRQChannelSubPriority:子优先级(根据分组表和选择来给)

4-NVIC_IRQChannelCmd:使能或者失能(内核使能,相当于上面说的大门,enable或disable)

 

4、编写中断服务函数

1-中断服务函数名要怎么写?写错了怎么办?

在启动文件的中断向量表中,将中断函数名称都已经初始化好了,由C语言特点可知,函数的名称对应于函数的地址,但是这些函数的内容都是空的,都是B. (启动文件是汇编程序)表示无限循环,如果自己写了函数,但是写错了,系统就在中断向量表中找不到中断服务函数的入口地址,但是电脑不是人,不会对你写错的函数报错,因为程序有无意义电脑不能识别,它只会自动去系统里执行这个循环空函数,所以自己函数的名称一定与启动文件中的名称相对应。

2-中断服务函数要写在什么地方?

为了编程方便管理,我们可以把程序直接可以写在中,内核的函数已经给了,如果外设中断函数可以自己继续补充。

四、中断小结

STM32F10X中断的方法还是比较清晰的,和单片机类似,多了一个优先级嵌套和分组的功能,另外要注意一些使用库函数编程的细节即可,后续再通过实验例子来测试各类中断的具体使用方法。

  • 9
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32F103是一款32位的ARM Cortex-M3内核微控制器,它具有丰富的中断源。 首先,STM32F103具有外部中断源,用于处理外部引脚的中断信号。它具有多个外部中断通道,每个通道都可以配置为触发上升沿、下降沿、上升和下降沿、仅高电平或仅低电平触发。这使得我们可以轻松地使用外部硬件设备(如按钮、传感器)来触发中断。 其次,它还提供了多个定时器/计数器中断源。这些定时器可以用于生成精确的时间延迟、测量脉冲宽度、产生PWM信号等应用。当定时器/计数器的计数值达到设定值时,它会触发相应的中断源,我们可以在中断服务函数中执行相应的操作。 此外,STM32F103还具有多个串行通信接口,如USART、SPI和I2C等,它们也可以触发中断源。在数据接收或发送完成时,这些接口可以向处理器发送中断请求,以便我们及时处理接收到的数据或发送下一批数据。 另外,STM32F103还支持DMA(直接存储器访问)中断源。DMA是一种特殊的数据传输方式,可以通过直接将数据从外设传输到内存或从内存传输到外设,而无需CPU的干预。当DMA传输完成时,它也可以产生中断请求,以便我们采取进一步的处理。 综上所述,STM32F103具有丰富的中断源,包括外部中断源、定时器/计数器中断源、串行通信接口中断源以及DMA中断源。这些中断源可以提供灵活的事件处理能力,以满足不同应用场景的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值