你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
csz9981 提问时间:2019-4-19 09:05 /
STM32自己写的中断服务函数名必须与启动文件中预设的中断服务函数名一样吗?如果不一样,会怎样?
PB6产生下降沿,满足中断条件后,中断行为是怎样被触发的,程序是怎样跳转到EXTI9_5_IRQHandler函数的?

收藏 评论4 发布时间:2019-4-19 09:05

举报

4个回答
七哥 回答时间:2019-4-19 09:57:36
用标准函数库时,中断服务函数名必须与启动文件中一致。不一致会怎么样,那就是找不到中断服务函数,自然也没办法执行。用HAL库的时候,中断服务函数已经写好,但是用户需要写中断回调函数,用户不用管理中断,只需关心中断服务后要干的活。

中断如何触发,这个是硬件触发,是中断源和CPU打交道,用户不需要关心。
用户只需要开启相应中断,和设置中断模式,这都相当于是一个开关。有了中断事件后,硬件触发中断控制器,中断控制器又通知CPU,并提供相应中断服务函数入口地址。CPU得到中断后,把当前运行的PC指针和其它必要参数压栈,去执行中断服务。执行完中断后,恢复现场,返回继续执行原来主程序。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

Dylan疾风闪电 回答时间:2019-4-19 11:28:03
STM32自己写的中断服务函数名必须与启动文件中预设的中断服务函数名一样吗?如果不一样,会怎样?
必须一致,否则会由于找不到入口函数,触发HardFault_Handler

PB6产生下降沿,满足中断条件后,中断行为是怎样被触发的,程序是怎样跳转到EXTI9_5_IRQHandler函数的?
debug然后看Disassembly中的汇编,你就知道怎么执行的了

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

csz9981 回答时间:2019-4-19 20:25:07
Dylan疾风闪电 发表于 2019-4-19 11:28
STM32自己写的中断服务函数名必须与启动文件中预设的中断服务函数名一样吗?如果不一样,会怎样?
必须一致 ...

感谢,回头我再试试。
csz9981 回答时间:2019-4-19 20:28:56
toofree 发表于 2019-4-19 09:57
用标准函数库时,中断服务函数名必须与启动文件中一致。不一致会怎么样,那就是找不到中断服务函数,自然也 ...

感谢,说明比较详细,学习了。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版