禁用 stm32f103 的外部中断后,如何重新启用它?



我使用

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; 
NVIC_Init(&NVIC_InitStructure);

启用中断,然后使用

NVIC_InitStructure.NVIC_IRQChannelCmd=DISABLE; 
NVIC_Init(&NVIC_InitStructure);

禁用它。那么我如何重新启用中断,使用ICER、ISER或任何其他方式?

要启用和禁用NVIC中的中断,只需使用相关的CMSIS函数:

void NVIC_EnableIRQ(IRQn_Type IRQn);
void NVIC_DisableIRQ(IRQn_Type IRQn);

有CMSIS库函数可以启用中断和禁用中断。

使用void NVIC_EnableIRQ(IRQn_Type IRQn);可以重新启用禁用的中断。

您需要提及中断的IRQ编号才能再次启用它。

但是,如果要一次性启用或禁用所有中断,则必须在STM32中使用ARM函数。这些是

__disable_irq();
__enable_irq();

通过使用这些,你可以很容易地启用禁用ARM内核上的所有中断。

最新更新