完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32的中断服务函数必须是这个吗,void USART2_IRQHandler(void)
不能自己写个中断函数吗比如void USART2_Handler(void) |
|
相关推荐
15个回答
|
|
云汉达人
可以的,但是需要自己重新定义。 在启动文件中如;startup_stm32f10x_md.s文件中定义到所有的中断函数入口和名字: 如果你想更改的,建议你修改你的代码,不去修改库函数。如下图: 这样你的Uart232_IRQHandler()函数就是中断函数。 |
|
|
|
可以,去改那个startup文件里面的中断地址入口函数就行
|
|
|
|
可以的,再启动文件修改这个函数名,然后可以用你的函数了,或者自己定义一个宏定义也可以的
|
|
|
|
M系列核心的MCU,中断列表就是一组函数指针,指针的名字可以随便定义,只要和指向位置的名字相同即可。中断列表的位置也可以随便修改,把VECT寄存器的值指向列表的首地址就可以了。
|
|
|
|
因为st的库里已经把中断服务函数定义好了。用户只需要定义他具体的功能实现就可以。这就是官方库带来的便捷和好处。不像51,是靠中断服务函数后边的关键字interrupt 和中断号来识别。
|
|
|
|
|
|
|
|
在启动文件更改一下就可以自己定义中断函数
|
|
|
|
你说的这个是ARM公司制定的通用规则,ARM公司把中断管理集成在内核中,然后将内核授权给ST公司设计芯片和生产,此时ST公司就只能按照ARM的一些规定设计芯片,其中就是中断名称必须要默认使用ARM公司命名方式。
所有使用了Cortex-Mx的内核都要遵守这个原则,这是为了提高通用性,降低了编程者的上手难度。你说的那个是中芯片的启动文件中就定义好的,而启动文件是ARM公司提供的,当然你也可以通过修改启动文件中定义的名称进行修改。如果不更改启动文件的名称时,芯片响应中断请求后,会进入一个死循环,就是那个 B . 的语句。 |
|
|
|
在启动文件中可以写函数
|
|
|
|
首先,STM32的启动文件里,对所有的50多个中断,做了一个中断向量表,在这个表里定义了所有的中断以及中断的优先级顺序。
但是STM32也允许用户自定义函数,只要重定义重构就行了,你可以定义一个新的,但是函数内实现用的是官方的(这样可以避免启动文件的错误) |
|
|
|
是可以自己修改的,但是在启动文件中的名字也是要修改的,要修改全套的
|
|
|
|
ST已经写出这些函数是作为默认的中断函数名,在启动文件中都有这些函数名字;可以自己修改,顺便修改下启动文件里的就行。
|
|
|
|
在启动文件.s中可以修改中断向量,顺便了解下STM32 Cortex-M内核上电启动过程。。。
|
|
|
|
并不是的,可以修改的,但是启动文件中的函数名要是一样的才可以找到中断函数进行调用
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
684 浏览 0 评论
1100 浏览 1 评论
2465 浏览 5 评论
2799 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2638 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
650浏览 9评论
648浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
777浏览 6评论
621浏览 5评论
663浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 23:14 , Processed in 1.194696 second(s), Total 78, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号