GD32F103 关闭全部中断 代码
时间: 2024-09-19 14:15:56 浏览: 86
GD32F103是一款基于Arm Cortex-M4内核的微控制器,要关闭所有中断,你需要在C语言程序中操作中断管理寄存器(Interrupt Management Register,IMR)。以下是一个简单的示例代码片段,用于禁止所有外部中断:
```c
#include "gd32f10x.h" // 包含GD32F103的头文件
// 禁止所有外部中断
void disable_all_ints(void)
{
// 首先清零EXTI线路上所有中断请求
EXTI_ClearITPendingBit(EXTI_Line0 | EXTI_Line1 | ...); // 请将EXTI_Line0, EXTI_Line1替换为你需要禁用的中断对应行
// 然后逐个清除中断组的全局中断屏蔽寄存器(对应EXTI_IMR)
EXTI_GenerateSWInt(); // 清除所有EXTI Group 1中断
EXTI_GenerateSWInt(); // 清除所有EXTI Group 2中断
EXTI_GenerateSWInt(); // 可能还有更多EXTI Group,根据实际硬件配置调整
// 再次清零EXTI Line上所有中断请求,防止复位
EXTI_ClearITPendingBit(EXTI_Line0 | EXTI_Line1 | ...);
// 如果有其他中断源(如定时器、串口等),请同样操作它们对应的中断禁止寄存器
// 最后,设置系统中断管理寄存器(SysTick_IRQn和其他中断)为禁用状态
System_IntConfig(SystemCoreClock, DISABLE); // 这里假设SystemCoreClock是当前系统主频
}
阅读全文