OpenEdv-开源电子网

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

STM32f103C8T6 怎么设置六个外部中断,用于六个按钮的触发?

[复制链接]

22

主题

79

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2015-3-13
在线时间
5 小时
发表于 2015-8-20 17:03:19 | 显示全部楼层 |阅读模式
5金钱
 PA0和PB0同一时间只能有一个中断  不能两个同时设置为中断模式..
那也就是说EXTI0只能对应PA0,PB0,PC0,PD0,且只能用其中的一个口;
那也就是说EXTI1只能对应PA1,PB1,PC1,PD1,且只能用其中的一个口;
那也就是说EXTI2只能对应PA2,PB2,PC2,PD2,且只能用其中的一个口;
那也就是说EXTI3只能对应PA3,PB3,PC3,PD3,且只能用其中的一个口;

那也就是说EXTI4只能对应PA4,PB4,PC4,PD4,且只能用其中的一个口;


那我要同时用六个外部中断 ,怎么办呢?

最佳答案

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

还有 9-5  15-10 中断线啊   那么多的
不断学习和进步
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-8-20 17:03:20 | 显示全部楼层
还有 9-5  15-10 中断线啊   那么多的
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-8-20 17:03:20 | 显示全部楼层
回复【3楼】水晶球:
---------------------------------
虽然同用一个中断函数,但是可以通过判断标志位(EXTI->R)来使用每一条中断线,所以0~15 这16条中断线都是可以用的
回复

使用道具 举报

22

主题

79

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2015-3-13
在线时间
5 小时
 楼主| 发表于 2015-8-21 09:40:36 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
回复【2楼】lycreturn:
---------------------------------
EXTI5-9 是共用一个中断函数, EXTI10-15也是共用一个中断函数, 加上前面的EXTI0-4,顶多也就可以设置7个中断可以用吧,  那如果我需要多于7个的中断 按键呢,要怎么设置,不是很明白,望指点,谢谢!
不断学习和进步
回复

使用道具 举报

22

主题

79

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2015-3-13
在线时间
5 小时
 楼主| 发表于 2015-8-25 11:30:31 | 显示全部楼层
回复【4楼】lycreturn:
---------------------------------
那我要同时使用EXTI0的PA0,PB0,PC0,PD0,接在四个按键上,要怎么配置呢? 还是不能这样同时使用同一个中断口。。。
不断学习和进步
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-8-25 12:29:34 | 显示全部楼层
回复【5楼】水晶球:
---------------------------------
当然  同一条中断线只能用一个
回复

使用道具 举报

22

主题

79

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2015-3-13
在线时间
5 小时
 楼主| 发表于 2015-8-25 13:43:57 | 显示全部楼层
回复【6楼】lycreturn:
---------------------------------
EXTI5-9 是共用一个中断函数,那我要把PA5,PA6,PA7,PA8,PA9,配置成中断口, 然后分别外界按键,要怎么配置这5个口呢?
不断学习和进步
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-8-25 23:56:34 | 显示全部楼层
[mw_shl_code=c,true]配置中断线 和其他EXTI0 类似 只需在中断里加以判断[/mw_shl_code] [mw_shl_code=c,true]比如我同时配置中断线5 和8[/mw_shl_code] [mw_shl_code=c,true]void EXTI9_5_IRQHandler(void) { if(EXTI->R&(1<<5)) //LINE5上的中断 { LED0 =!LED0; EXTI->R|=1<<5; //清除LINE5上的中断标志位 } if(EXTI->R&(1<<8)) //LINE8上的中断 { LED0 =!LED0; EXTI->R|=1<<8; //清除LINE8上的中断标志位 } }[/mw_shl_code]

回复

使用道具 举报

22

主题

79

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2015-3-13
在线时间
5 小时
 楼主| 发表于 2015-8-26 16:14:47 | 显示全部楼层
回复【8楼】lycreturn:
---------------------------------
学习了,谢谢,我试试
不断学习和进步
回复

使用道具 举报

22

主题

79

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2015-3-13
在线时间
5 小时
 楼主| 发表于 2015-8-28 08:55:13 | 显示全部楼层
回复【9楼】水晶球:
---------------------------------
回复【8楼】lycreturn:
---------------------------------
还有一个问题,就是我使用EXTI0的PA0 时, 当有中断的时候,那PB0  会不会也受到中断的影响,如果会影响,要怎么才能避免在PA0接受中断的期间而PB0不受影响?
不断学习和进步
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 11:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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