GD32F103 关闭与打开总中断代码
时间: 2024-09-20 16:04:27 浏览: 87
基于GD32F103使用串口不同的中断实现freemodbus移植
GD32F103是一款基于ARM Cortex-M4的微控制器,它支持中断系统来处理外部事件。为了关闭和打开总中断,你需要操作它的全局中断寄存器(General Purpose Interrupt Control Register,通常是NVIC)。以下是关闭和开启总中断的基本步骤:
**关闭总中断:**
```c
// 先保存当前中断向量表位置
__IO uint32_t *oldVectorTable = (__IO uint32_t *) NVIC_GetVectorTable(NVIC_VECTORTABLE_FLASH);
// 禁止全局中断
NVIC_DisableIRQ(GenericInterrupt_IRQn); // 替换GenericInterrupt_IRQn为你想要禁止的中断对应的标号
// 将中断向量表设置回缺省位置,以防止意外触发中断
NVIC_SetVectorTable(NVIC_VECTORTABLE_NONE, oldVectorTable);
```
这里假设`GenericInterrupt_IRQn`是你想关闭的某个通用中断。
**打开总中断:**
```c
// 恢复默认中断向量表
NVIC_SetVectorTable(NVIC_VECTORTABLE_FLASH, oldVectorTable);
// 如果需要开启特定中断,例如仍需开启通用中断
NVIC_EnableIRQ(GenericInterrupt_IRQn);
```
记得将`GenericInterrupt_IRQn`替换为你要开启的具体中断标号。
**注意:**
在实际应用中,关闭总中断通常不会直接这么做,除非你确信程序不需要响应任何中断。一般会保持总中断开启,只针对个别不需要的中断进行禁用。
阅读全文