"); //-->
好久没来写点东西了,今天来和大家分享一下stm32总中断的控制方法:
//--------------------------------------------------------------------------------
// 函数功能:允许stm32总中断
// 函数入口:
// 函数出口:
// 创建日期:
// 修改记录:
// 函数版本:
// 备 注:
//--------------------------------------------------------------------------------
void STM32_EnableIRQ( void )
{
__set_PRIMASK(IRQStatus);
}
//--------------------------------------------------------------------------------
// 函数功能:禁止stm32总中断,只允许NMI和hardfault中断
// 函数入口:
// 函数出口:
// 创建日期:
// 修改记录:
// 函数版本:
// 备 注:
//--------------------------------------------------------------------------------
void STM32_DisableIRQ( void )
{
IRQStatus = __get_PRIMASK();
// 关闭中断
asm("CPSID I");
}
//--------------------------------------------------------------------------------
// 总中断控制
//--------------------------------------------------------------------------------
#define OS_ENTER_CRITICAL STM32_DisableIRQ() // 进入临界
#define OS_EXIT_CRITICAL STM32_EnableIRQ() // 退出临界
以上方法仅提供参考,在使用函数是需要调用固件库core_cm3.c里的函数。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。