OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3715|回复: 5

stm32单片机最多可以有几路外部中断?

[复制链接]

20

主题

99

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2020-6-21
在线时间
70 小时
发表于 2020-12-25 13:20:18 | 显示全部楼层 |阅读模式
比如我把PA0和PB0配置成外部中断。结果PA0一直不生效。后来我去问了,一开始以为是买到翻新的芯片了,后来有人说同一条线上只能有一路中断,像PA0,PB0同时开启的话,应该是最后配置的生效。

那么问题来了?
是不是外部中断最多就16路?
EXTI0_IRQHandler,如果只能配置一路的话,那么EXTI5_9_IRQHandler,是不是只能配置5路呢?

我还是怀疑是芯片的质量问题,所以来论坛上问一下,看看大家的板子是不是也是类似的情况?



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

99

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2020-6-21
在线时间
70 小时
 楼主| 发表于 2021-1-4 17:28:44 | 显示全部楼层
c2007s 发表于 2020-12-26 11:26
进了中断,读一下引脚电平,确定是PA0还是PB0。就这么简单。

这是不行的,我去试了,果然一条线只能开一个中断。如果都是Px0的话,只会生效初始化晚的那一个。
回复 支持 1 反对 0

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2020-12-25 14:14:49 | 显示全部楼层
根据RM0008.pdf,外部中断一共20路。

#0~#15:共计16路用于连接普通GPIOx_0~GPIOx_15中断;
#16:连接PVD输出
#17:连接RTC闹钟事件
#18:连接USB唤醒事件
#19:连接网口唤醒事件

其中#0~#15如同你理解的那样,同一时刻,一条中断线只能连接一个GPIO(比如#0连接了PA0就不能连接PB0/PC0...),
这一点通过看它的寄存器描述能立即明白:
exti.png

所有的16路外部中断是可以同时启用的,至于EXTI0_IRQHandler独立成为一个中断,而#5~#9共享一个中断EXTI5_9_IRQHandler,那只能说这是芯片设计如此,我们没法改变,只能这么用;
#5~#9发生中断都进EXTI5_9_IRQHandler,在服务函数里进一步判断相关标志位即可知道究竟是哪个发生了中断。
#0~#4没有这个问题,它们都独占一个中断号,只要进来就能立即知道是哪条中断线发生了中断,因此建议优先使用#0~#4。
int.png

坚决不用寄存器,拒绝重复造轮子。
回复 支持 1 反对 0

使用道具 举报

5

主题

269

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1053
金钱
1053
注册时间
2020-5-11
在线时间
253 小时
发表于 2020-12-25 14:42:20 | 显示全部楼层
怀疑有什么问题?前十五路一路一引脚。没问题啊
回复 支持 反对

使用道具 举报

1

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2020-11-7
在线时间
44 小时
发表于 2020-12-25 15:14:38 | 显示全部楼层
2楼说的很清楚了,至于外部中断5_9是共用一个中断函数,在函数中用判断中断标志位来区分是5-9种哪个中断相应了。明白?
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2020-12-26 11:26:15 | 显示全部楼层
进了中断,读一下引脚电平,确定是PA0还是PB0。就这么简单。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 07:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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