• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32中断行为是怎样跳转到EXTI9_5_IRQHand

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

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 第一个问题:

    中断函数可以不用和启动文件的函数名不一样,但是要重新定义下:

    #define Uart232_IRQHandler                                USART1_IRQHandler​


    第二个问题

    PB6满足中断条件后,中断标志位置位,如果寄存器中允许中断的话,程序会自动跳转到EXTI9_5_IRQHandler函数​

    • 发布于 2019-04-19
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:6
  • 这两处的名称必须一致,如果不一致,程序在连接的过程中就会提示出错。当然这个名称不一定必须是启动文件中的名称,可以自己修改,但是必须要保证启动文件中的名称和自己实现的中断服务函数名称一致。

    01.png


    • 发布于2019-04-19
    • 举报
    • 评论 0
    • 1
    • 0

  • 可以不一样,但是需要在启动文件里面的中断函数名重新宏定义就可以了,你要在启动文件里面找到这个函数名并替换
    • 发布于2019-04-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 1、函数名其实是个地址

    2、不修改启动文件就不能改函数名

    3、为什么是这个函数名?因为在启动文件定义了这个中断的地址(函数)

    4、修改启动文件地址(函数名),就可修改函数名

    • 发布于2019-04-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 捕获.PNG


    在启动文件里面,写了中断向量表的,当你初始化了相关中断后,如果中断被触发了,会相应,这个中断函数是weak,如果你定了就会去相应你写的哪个函数。

    • 发布于2019-04-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 必须一样,这样编译器才会将对应的函数放到那个地址,编译器对s文件的那些终端函数会分配固定地址的

    这个中断是由中断控制器,也就是那个NVIC来触发的,属于硬件动作,它会将CPU拖进中断模式,CPU跳转到对应的地址去执行中断函数

    • 发布于2019-04-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 一定要一样的,如果不一样 ,中断找不到中断函数,会进到错误中断中的。


    中断满足后,中断标志置位,当CPU查询到这个中断标志有效时,就跳到中断函数中执行。

    • 发布于2019-04-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32中断行为是怎样跳转到EXTI9_5_IRQHand