登录/注册

stm32f103 关总中断

更多

在STM32F103(基于Cortex-M3内核)中关闭全局中断,可以通过以下方法实现:


方法1:使用CMSIS标准库函数

#include "core_cm3.h"  // 确保包含CMSIS头文件

// 关闭所有中断(PRIMASK置1)
__disable_irq();      

// 恢复中断(PRIMASK清零)
__enable_irq();       

方法2:直接操作汇编指令

在C代码中使用内联汇编:

// 关闭所有中断
__asm volatile ("CPSID I");

// 恢复中断
__asm volatile ("CPSIE I");

注意事项

  1. 谨慎使用
    全局中断关闭期间,系统无法响应任何中断(除不可屏蔽中断NMI和硬Fault),可能导致实时性任务失效。建议仅在临界代码段短暂关闭中断,并尽快恢复。

  2. 嵌套中断控制
    若多次调用__disable_irq(),需对应相同次数的__enable_irq()才能恢复中断。PRIMASK寄存器是单比特位,无计数功能。

  3. 替代方案:BASEPRI寄存器
    若需屏蔽特定优先级以下的中断(而非全局),可使用BASEPRI寄存器,例如:

    __set_BASEPRI(0x50);  // 屏蔽优先级≥0x50的中断
    __set_BASEPRI(0);     // 恢复

代码示例

void CriticalFunction(void) {
    __disable_irq();      // 关中断
    // ... 执行关键操作(如原子变量操作、硬件寄存器读写)
    __enable_irq();       // 开中断
}

通过上述方法,可安全控制STM32F103的全局中断状态。推荐优先使用CMSIS函数,保证代码可移植性和可读性。

ARM系列STM32F103芯片的解密方法

破解STM32F103芯片的方法

2023-09-19 09:03:40

ch32v103stm32f103的区别

ch32v103与stm32f103的区别  Ch32v103与STM32f103

2023-08-22 15:49:00

STM32F103 GPIO内部电路图讲解

STM32F103 GPIO内部电路图讲解

2023-02-01 16:32:14

基于STM32F103的SVPWM算法实现

基于STM32F103的SVPWM算法实现

资料下载 jinyi7016 2022-03-22 12:12:17

stm32f103中断总结很详细

stm32f103中断总结很详细

资料下载 佚名 2021-11-24 17:06:02

基于STM32f103的输入捕获测频率和占空比

基于STM32f103的输入捕获测频率和占空比

资料下载 shyshyshy 2021-08-02 10:10:24

基于STM32f103的FFT频率测试程序下载

基于STM32f103的FFT频率测试程序下载

资料下载 shyshyshy 2021-08-02 10:07:20

基于STM32f103使用的DAC正弦波

基于STM32f103使用的DAC正弦波

资料下载 shyshyshy 2021-08-02 10:05:00

基于STM32F103单片机的矩阵按键设计

本实验使用STM32F103单片机,主题代码通用的。

2022-12-09 17:18:46

STM32F103的外部中断要怎样去使用呢

STM32F103的外部中断有多少呢?如何对STM32F103的外部中断

2022-03-01 07:00:54

STM32F103中断资源是什么意思?

STM32F103的中断资源是什么意思?

2021-11-25 09:14:08

详解STM32F103的外部中断

STM32F103的外部中断是什么意思?使用STM32F103的外部中断

2021-11-16 09:31:38

STM32F103中断管理方法是什么

STM32F103的中断管理方法是什么?如何对STM32F103中断进行

2021-11-16 08:42:54

如何使用STM32F103的外部中断

这一章,将向大家介绍如何使用 STM32F103 的外部中断。前面的两章掌握了 STM32F103 的 IO 口最基本的操作。本章将介绍如何将

2021-08-13 07:54:55

stm32f030和stm32f103功能差异

stm32f030和stm32f103功能差异主要表现在哪?

2021-07-22 09:35:47

7天热门专题 换一换
相关标签