硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3761|回复: 7
收起左侧

[其它] 几个GPIO引脚映射到同一个外部中断线的问题

[复制链接]

15

主题

76

回帖

121

积分

初级会员

积分
121
发表于 2019-8-14 20:05:31 | 显示全部楼层 |阅读模式
例如PA0、PB0、PC0三个引脚都能映射到外部中断线0,无论触发PA0或PB0或PC0,都会进入同一个中断服务函数。但怎样分辨到底是哪个引脚触发的呢?

手头缺少测试装置,就在网上搜此类问题,发现有两种答案:

一种是不应将PA0、PB0、PC0都映射到外部中断线0,原因是在写配置代码时,例如若三个引脚的配置顺序PA0、PB0、PC0,那么只有最后一个引脚的配置生效,即只有PC0能触发外部中断线0,而PA0、PB0无法触发。为避免这种情况,应将不同的引脚分配给不同的外部中断线,例如PA0用外部中断线0,PB1用外部中断线1,PC2用外部中断线2。

另一种是可以都映射给同一个外部中断线,只需要在终端服务函数中读取引脚的电平即可分辨出是哪个引脚触发的。

到底何去何从呢?

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2019-8-15 01:19:35 | 显示全部楼层
内部是一个多路选择器,如果配置了多个,只会有一个有效。

你的第1种分析是对的。
回复

使用道具 举报

15

主题

76

回帖

121

积分

初级会员

积分
121
 楼主| 发表于 2019-8-15 08:47:56 | 显示全部楼层
eric2013 发表于 2019-8-15 01:19
内部是一个多路选择器,如果配置了多个,只会有一个有效。

你的第1种分析是对的。

谢谢汉哥!
回复

使用道具 举报

8

主题

20

回帖

44

积分

新手上路

积分
44
发表于 2020-3-23 16:56:54 | 显示全部楼层
想请问一下如果按键特别多,中断线不够有什么解决办法嘛
回复

使用道具 举报

8

主题

20

回帖

44

积分

新手上路

积分
44
发表于 2020-3-23 17:20:13 | 显示全部楼层
eric2013 发表于 2019-8-15 01:19
内部是一个多路选择器,如果配置了多个,只会有一个有效。

你的第1种分析是对的。

C:\Users\10156\Desktop
硬汉哥哪个是多路选择器?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2020-3-23 18:31:02 | 显示全部楼层
Kevin666 发表于 2020-3-23 17:20
硬汉哥哪个是多路选择器?

图片没有上传成功
回复

使用道具 举报

8

主题

20

回帖

44

积分

新手上路

积分
44
发表于 2020-3-23 19:23:19 | 显示全部楼层
eric2013 发表于 2020-3-23 18:31
图片没有上传成功

就是这个图片。  

还有就是想问个问题,假如有许多按键,16个中断线不够,有什么其它方法嘛?
ZB`UX0]JA)K@E%F%@`8@)UP.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2020-3-23 19:34:59 | 显示全部楼层
Kevin666 发表于 2020-3-23 19:23
就是这个图片。  

还有就是想问个问题,假如有许多按键,16个中断线不够,有什么其它方法嘛?

这样的话,用这种的不是更方便,占用太多中断,系统稳定性欠佳

【分享】多个厂家的矩阵键盘芯片方案搜集,支持30-80个按键检测
http://www.armbbs.cn/forum.php?m ... 9534&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 08:52 , Processed in 0.222831 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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