首页 > 解决方案 > STM32 - Cortex M3:STIR 寄存器

问题描述

我正在尝试编写代码以生成软件触发器。数据表让我感到困惑,我在 NET 上找不到任何示例。在 4.2.8 的“Cortex-M3 设备通用用户指南”中,我在 NVIC->STIR 寄存器中读写以生成软件中断:[STIR 寄存器][1]

但是,如果我理解正确,对于非特权软件,USERSETMPEND 必须设置为 1(我认为这是我的情况)。但是如果我想访问 SCR,我必须是“特权”[SCR 寄存器][2]

那么,如何才能进入特权模式呢?是否真的有必要只为中断配置进入该模式?我在代码中所做的是

   SCB->CCR |= 0x02; // USERSETMPEND = 1. But I must be "privileged"
    HAL_NVIC_EnableIRQ(EXTI0_IRQn); // enable interrupt line
   .... some code....
   ... ...
   if(my_software_trigger)
    {

   my_software_trigger = 0;
   NVIC->STIR = EXTI0_IRQn; // triggers interrupt??
  }

这是正确的方法吗?有人有这方面的经验吗?任何帮助都非常感谢..

Ps对不起我的英语

马可。

标签: stm32interrupt-handlingcortex-m3

解决方案


推荐阅读