你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

M4的中断优先级配置

[复制链接]
scfor123456 提问时间:2019-9-17 15:02 /
void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;


/* 配置NVIC为优先级组1 */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//高2位为抢占优先级,低2位为响应优先级


//中断1设置优先级
/* 配置中断源:按键1 */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;  //配置为EXTI0通道
/* 配置抢占优先级 */
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
/* 配置子优先级 */
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
/* 使能中断通道 */
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure); //将上述配置参数传入中断初始化函数


//中断2设置优先级

  /* 配置中断源:DMA1 */
  NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel1_IRQn;  //配置为DMA1_Channel1_IRQn通道
  /* 配置抢占优先级 */
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  /* 配置子优先级 */
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  /* 使能中断通道 */
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure); //将上述配置参数传入中断初始化函数
}


这个设置中,EXTI0中断抢占优先级高于DMA1中断,所以EXTI0会打断DMA1中断,这样的写法对不对?

收藏 评论4 发布时间:2019-9-17 15:02

举报

4个回答
回答时间:2019-9-17 16:26:52
是这样写的。NVIC_IRQChannelPreemptionPriority决定是否抢占。
scfor123456 回答时间:2019-9-17 16:36:36
安 发表于 2019-9-17 16:26
是这样写的。NVIC_IRQChannelPreemptionPriority决定是否抢占。

OK
scfor123456 回答时间:2019-9-17 17:06:02
安 发表于 2019-9-17 16:26
是这样写的。NVIC_IRQChannelPreemptionPriority决定是否抢占。

SysTick_Config(0x01000000);
NVIC_Configuration();
先设置SysTick再设置NVIC会导致SysTick定时中断进不去?
回答时间:2019-9-19 09:15:59
先配置NVIC再配置systick,可能是因为  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)这句话导致的。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版