[求助] STM32中断行为是怎样跳转到EXTI9_5_IRQHandler函数的?

csz9981   2019-4-19 09:07 楼主

STM32自己写的中断服务函数名必须与启动文件中预设的中断服务函数名一样吗?如果不一样,会怎样?
PB6产生下降沿,满足中断条件后,中断行为是怎样被触发的,程序是怎样跳转到EXTI9_5_IRQHandler函数的?

回复评论 (4)

中断服务函数名必须与启动文件中预设的中断服务函数名一样.不一样,系统将不能调用你写的函数。他只会寻找他定义的名字。
程序是怎样跳转到EXTI9_5_IRQHandler函数的    不同中断,对应不同的地址,某个中断触发时,程序就跳转到对应的地址,执行对应内容。不是每个环节都在代码上体现出来的。比如,一些门电路的动作,代码上就没有具体的体现。中断配置,中断函数,用好就行了。
点赞  2019-4-22 13:38
中断服务函数名必须与启动文件中预设的中断服务函数名一样.
void EXTI9_5_IRQHandler(void)
{

  u32 Temp = 0x00; 

  PEout(2) = ~PEout(2);
  Temp = EXTI->PR;       //取读是那个引脚的中断
  switch(Temp)
  {
    case Exti_From_Pin8:
      EXTI_ClearITPendingBit(EXTI_Line8);
      break;
    case Exti_From_Pin9:
      if(Sys_Status < MAX_STATUS)
      {
        Sys_Status ++;
      }
      EXTI_ClearITPendingBit(EXTI_Line9);
      break;
    default:break;
  }
}
---------------------
作者:蚂蚁取经
来源:CSDN
原文:https://blog.csdn.net/zhengyanan815/article/details/72875501
版权声明:本文为博主原创文章,转载请附上博文链接!
点赞  2019-4-22 13:49
引用: huwq 发表于 2019-4-22 13:49
中断服务函数名必须与启动文件中预设的中断服务函数名一样.
void EXTI9_5_IRQHandler(void)
{

   ...

感谢,学习了。
点赞  2019-4-22 15:54
引用: ienglgge 发表于 2019-4-22 13:38
中断服务函数名必须与启动文件中预设的中断服务函数名一样.不一样,系统将不能调用你写的函数。他只会寻找 ...

感谢,学习了。
点赞  2019-4-22 15:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复