登录/注册

stm32f103 关中断

更多

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


方法 1:使用 CMSIS 标准函数

CMSIS(Cortex Microcontroller Software Interface Standard)提供了直接控制中断的接口:

#include "stm32f10x.h"

// 关闭全局中断
__disable_irq();

// ... 此处执行需要关中断的关键代码 ...

// 重新开启全局中断
__enable_irq();

方法 2:直接操作 PRIMASK 寄存器

通过汇编指令直接修改内核的 PRIMASK 寄存器:

// 关闭全局中断
__asm volatile ("cpsid i");

// ... 此处执行需要关中断的关键代码 ...

// 重新开启全局中断
__asm volatile ("cpsie i");

注意事项

  1. 关键代码段尽量简短:关中断期间系统无法响应任何中断(包括 SysTick),可能导致实时性丢失。
  2. 避免嵌套问题:如果多次调用 __disable_irq(),需对应相同次数的 __enable_irq() 才能重新开中断。
  3. 替代方案:如需保护数据,可优先考虑使用临界区(Critical Section)或互斥锁。

示例场景

__disable_irq();  // 关中断
// 操作共享资源(如全局变量、外设寄存器)
global_counter++;
__enable_irq();   // 开中断

建议优先使用 __disable_irq()__enable_irq(),因其可读性更好且与内核兼容性强。

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天热门专题 换一换
相关标签