我使用
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内核上的所有中断。