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

stm32的中断服务函数必须是这个吗

liuxiaofei126 2019-03-09 浏览量:2060

stm32的中断服务函数必须是这个吗,​void USART2_IRQHandler(void)

不能自己写个中断函数吗比如void USART2_Handler(void)

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以的,但是需要自己重新定义。

    在启动文件中如;startup_stm32f10x_md.s文件中定义到所有的中断函数入口和名字:

    11.jpg

    如果你想更改的,建议你修改你的代码,不去修改库函数。如下图:
    22.jpg

    这样你的Uart232_IRQHandler()函数就是中断函数。

    33.jpg


    • 发布于 2019-03-09
    • 举报
    • 评论 0
    • 4
    • 0

其他答案 数量:14
  • 可以,去改那个startup文件里面的中断地址入口函数就行
    • 发布于2019-03-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以的,再启动文件修改这个函数名,然后可以用你的函数了,或者自己定义一个宏定义也可以的
    • 发布于2019-03-10
    • 举报
    • 评论 0
    • 0
    • 0

  • M系列核心的MCU,中断列表就是一组函数指针,指针的名字可以随便定义,只要和指向位置的名字相同即可。中断列表的位置也可以随便修改,把VECT寄存器的值指向列表的首地址就可以了。
    • 发布于2019-03-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 因为st的库里已经把中断服务函数定义好了。用户只需要定义他具体的功能实现就可以。这就是官方库带来的便捷和好处。不像51,是靠中断服务函数后边的关键字interrupt 和中断号来识别。
    • 发布于2019-03-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 其实函数就是一个地址,这个地址的声明位置在启动文件中(.S),改启动文件就能改名称;

    建议不要改,程序兼容和移植会很麻烦

    • 发布于2019-03-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 在启动文件更改一下就可以自己定义中断函数
    • 发布于2019-03-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 你说的这个是ARM公司制定的通用规则,ARM公司把中断管理集成在内核中,然后将内核授权给ST公司设计芯片和生产,此时ST公司就只能按照ARM的一些规定设计芯片,其中就是中断名称必须要默认使用ARM公司命名方式。

    所有使用了Cortex-Mx的内核都要遵守这个原则,这是为了提高通用性,降低了编程者的上手难度。你说的那个是中芯片的启动文件中就定义好的,而启动文件是ARM公司提供的,当然你也可以通过修改启动文件中定义的名称进行修改。如果不更改启动文件的名称时,芯片响应中断请求后,会进入一个死循环,就是那个 B     .     的语句。

    • 发布于2019-03-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先,STM32的启动文件里,对所有的50多个中断,做了一个中断向量表,在这个表里定义了所有的中断以及中断的优先级顺序。

    但是STM32也允许用户自定义函数,只要重定义重构就行了,你可以定义一个新的,但是函数内实现用的是官方的(这样可以避免启动文件的错误)

    • 发布于2019-03-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 是可以自己修改的,但是在启动文件中的名字也是要修改的,要修改全套的
    • 发布于2019-03-10
    • 举报
    • 评论 0
    • 0
    • 0

  • ST已经写出这些函数是作为默认的中断函数名,在启动文件中都有这些函数名字;可以自己修改,顺便修改下启动文件里的就行。
    • 发布于2019-03-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 在启动文件.s中可以修改中断向量,顺便了解下STM32 Cortex-M内核上电启动过程。。。
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 并不是的,可以修改的,但是启动文件中的函数名要是一样的才可以找到中断函数进行调用
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以修改但是你修改之后所有关于这个中断的服务函数也要跟着改,很麻烦,还不如不改。

    • 发布于2019-03-14
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32的中断服务函数必须是这个吗