什么是中断
中断通常被定义为一个事件,该事件能够改变处理器执行指令的顺序。这样的事件与 CPU 芯片内外
部硬件电路产生的电信号相对应。
中断分为同步中断和异步中断。
同步中断:同步中断是当指令执行时由控制单元产生的,之所以称为同步,是因为只有在一条指令终
止执行后 CPU 才会发出中断。
异步中断:异步中断是由其他硬件设备依照 CPU 时钟信号随机产生的。
通常我们所说的中断指的是异步中断,我们将同步中断称为异常。(异常是由程序的错误产生的,或者
是由内核必须处理的异常条件产生的)。
中断的作用
当一个中断信号达到时,CPU 必须停止它当前正在做的事情,并且切换到一个另一个活动。为了做到
这就要在内核态堆钱保存程序计数器的当前值,并把与中断类型相关的地址放进程序计数量。
中断的约束
中断处理是由内核执行的最敏感的任务之一,因为它必须满足下列约束:
1)中断应该被尽可能快地处理完。
2)中断处理程序必须编成使相应的内核控制路径能以嵌套的方式执行。
3)内核在处理一个中断时,可接受新的中断。但存在一个临界区,中断必须被禁止。
出于 1)和 3)的约束,中断的设计一般将中断处理程序分为两部分执行(即上半部和下半部函数)。
上半部为中断被禁止的临界区,执行关键而紧急的任务,如把接收到的帧拷贝到输入队列,以便下半部函
数执行时能进行处理。
hal库编程
4.1 stm32cubemx配置
①新建工程
②选择单片机芯片
③选择SWD下载调试模式
④选择外部晶振时钟源