OpenEdv-开源电子网

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

关于外部中断共用一根线有解决方法么

[复制链接]

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2018-12-25
在线时间
16 小时
发表于 2019-6-12 10:49:56 | 显示全部楼层 |阅读模式
1金钱
最近做中断时,GPIO-A1,GPIO—B1,都用外部中断,但是A1,B1都是共用EXTI1,于是我在共用的中断服务函数判断如果GPIOA触发执行一端程序,如果GPIOB触发执行另一端程序,但调试只能实行一个功能,百度一下,,说是如果A1最后初始化到EXTI1,就只能实现GPIOA的,但是硬件应该焊好了,这个问题还能有方法解决么

最佳答案

查看完整内容[请看2#楼]

必须改硬件,或者其中一个IO不用外部中断,而是用定时器之类的触发中断,也行。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-6-12 10:49:57 | 显示全部楼层
必须改硬件,或者其中一个IO不用外部中断,而是用定时器之类的触发中断,也行。
回复

使用道具 举报

2

主题

582

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2690
金钱
2690
注册时间
2014-5-23
在线时间
188 小时
发表于 2019-6-12 11:20:43 | 显示全部楼层
目前应该没有办法
回复

使用道具 举报

5

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2018-6-13
在线时间
63 小时
发表于 2019-6-12 12:02:44 来自手机 | 显示全部楼层
与单片机接的一个IO还是两个
回复

使用道具 举报

5

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2018-6-13
在线时间
63 小时
发表于 2019-6-12 12:08:59 来自手机 | 显示全部楼层
中断不行就用查询方式
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1769
金钱
1769
注册时间
2015-6-11
在线时间
313 小时
发表于 2019-6-12 13:06:57 | 显示全部楼层
共用同一个中断完全没有问题,如果你引脚配置的是上升沿或者下降沿触发,那么你在中断里面在读取引脚的电平判断下高低,就可以知道是具体A1还是B1中断触发了。不过如果是双沿的话就比较麻烦,目前没有什么好的办法,这种共用的中断不建议使用双沿触发。
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2018-12-25
在线时间
16 小时
 楼主| 发表于 2019-6-12 14:00:21 | 显示全部楼层
还不够 发表于 2019-6-12 12:02
与单片机接的一个IO还是两个

单片机A1 B1口各接一个按键这样子
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2018-12-25
在线时间
16 小时
 楼主| 发表于 2019-6-12 14:00:59 | 显示全部楼层
awsawzj 发表于 2019-6-12 11:20
目前应该没有办法

哎,当时做硬件没注意这个问题
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2018-12-25
在线时间
16 小时
 楼主| 发表于 2019-6-12 14:02:15 | 显示全部楼层
还不够 发表于 2019-6-12 12:08
中断不行就用查询方式

定时器么
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2018-12-25
在线时间
16 小时
 楼主| 发表于 2019-6-12 14:07:04 | 显示全部楼层
zc123 发表于 2019-6-12 13:06
共用同一个中断完全没有问题,如果你引脚配置的是上升沿或者下降沿触发,那么你在中断里面在读取引脚的电平 ...

因为百度了一下,说是初始化中断线的时候,A1=EXTI1; B1=EXTI1; B1最后一个初始化,所以中断线是连在B1,也就是说我共用的中断函数里面判断A1有没有触发(无论什么边沿触发,因为线连在B1)也没用了吧,我理解这样是不是正确的?
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4521
金钱
4521
注册时间
2018-5-11
在线时间
946 小时
发表于 2019-6-12 20:12:06 | 显示全部楼层
北城以北 发表于 2019-6-12 14:07
因为百度了一下,说是初始化中断线的时候,A1=EXTI1; B1=EXTI1; B1最后一个初始化,所以中断线是连在B1, ...

理解正确,
A1、B1只能选一个
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-6-12 22:05:06 | 显示全部楼层
B1刮开破线,连到B2不就行了
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2018-12-25
在线时间
16 小时
 楼主| 发表于 2019-6-13 08:21:43 | 显示全部楼层
nashui_sx 发表于 2019-6-12 22:05
B1刮开破线,连到B2不就行了

哈哈方法很野,我可以试试
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2018-12-25
在线时间
16 小时
 楼主| 发表于 2019-6-13 08:22:25 | 显示全部楼层
正点原子 发表于 2019-6-12 10:49
必须改硬件,或者其中一个IO不用外部中断,而是用定时器之类的触发中断,也行。

明白了,谢谢
回复

使用道具 举报

26

主题

355

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
发表于 2019-6-13 08:53:58 | 显示全部楼层
长见识了
回复

使用道具 举报

5

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2018-6-13
在线时间
63 小时
发表于 2019-6-14 21:58:13 来自手机 | 显示全部楼层
北城以北 发表于 2019-6-12 14:00
单片机A1 B1口各接一个按键这样子

如果不是响应非常快建议尽量不要用中断,用查询的方式把IO口配置成输入,然后获取该端口状态就能够解决你说的问题了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 00:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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