野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12012|回复: 5

stm32中断重入问题

[复制链接]
发表于 2017-5-31 19:18:08 | 显示全部楼层 |阅读模式
STM32定时器中断服务函数中调用SysTick的延时函数,定时器再次中断请求到,会把自己这个中断打断吗?
例如:我定时器1.5ms中断,在中断服务程序中我用了10ms的延时函数,这样的话对于新的定时器中断请求会响应吗?新的定时器中断时我并没有退出中断中的延时服务函数,此时新的中断请求会进来吗?会把单片给搞死机吗?@fire @flyleaf @cancore

回复

使用道具 举报

发表于 2017-6-1 08:42:38 | 显示全部楼层
具体的自己试一下,探索一下就清楚了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-1 15:52:13 | 显示全部楼层
flyleaf 发表于 2017-6-1 08:42
具体的自己试一下,探索一下就清楚了

已经试了,事实证明如果中断内的服务程序没有执行完,同一个中断源的中断又来时并不会重新进入一次中断服务程序,而是继续执行原来未完成的中断,新的中断会被抛弃,这个和51好像不一样,对吗?我想试一下51的,但是没有51单片机@fire @flyleaf @cancore
回复 支持 反对

使用道具 举报

发表于 2017-6-1 16:48:14 | 显示全部楼层
举叉的BSD 发表于 2017-6-1 15:52
已经试了,事实证明如果中断内的服务程序没有执行完,同一个中断源的中断又来时并不会重新进入一次中断服 ...

再测试下进中断服务函数后立即清中断标志,看看后来的中断以不能进入
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-1 22:01:00 | 显示全部楼层
flyleaf 发表于 2017-6-1 16:48
再测试下进中断服务函数后立即清中断标志,看看后来的中断以不能进入

测了,清除中断标志后还是不能进的,新的中断会被抛弃,51好像更好反过来@cancore @fire @flyleaf
回复 支持 反对

使用道具 举报

发表于 2017-6-5 09:04:02 | 显示全部楼层
貌似如果在中断处理程序中调用其他函数,在被调函数中会被中断。
以上是51的经验,STM32没有试过。

另外进入中断后最好立刻清除中断标志。否则一次外部中断会调用2次中断处理函数。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-16 03:01 , Processed in 0.031411 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表