滴答定时器中断优先级程序中配置如下:

NVIC_InitStructure.NVIC_IRQChannel = SysTick_IRQn;  //嘀嗒定时器中断

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//占先式优先级设置为1

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //副优先级设置为0

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//中断使能

NVIC_Init(&NVIC_InitStructure);

 

 

SysTick_IRQn 是数值为-1,而NVIC_InitStructure.NVIC_IRQChannel是无符号类型,隐性转换NVIC_IRQChannel赋值为255;

在NVIC_Init(&NVIC_InitStructure);函数中有如下操作

NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;

等价于NVIC->IP[255]= tmppriority

IP[]数组是中断优先级配置数组,IP[]地址范围如下图,从0xe000e400到0xe000e4eF,

stm32 滴答定时器配置优先级导致程序异常

而IP[255]地址为0xe000e4ff 未查到该地址的含义。

 

有可能是越界,导致异常

 

具体的滴答定时器配置优先级可参看

https://blog.csdn.net/sunjiajiang/article/details/7741715

相关文章:

  • 2022-12-23
  • 2021-04-13
  • 2021-08-30
  • 2022-01-11
  • 2021-11-20
  • 2021-06-08
  • 2021-06-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2021-12-09
  • 2021-07-09
  • 2021-05-07
相关资源
相似解决方案