电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
stm32外部中断
已解决
73482
个问题
已帮助
5993
位优秀工程师
stm32外部中断
皇甫赛奇
2018-01-03
浏览量:886
STM32的每个IO口都可以作为中断输入吗?要把IO口作为外部中断输入怎么操作?
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
Angel_YY
STM32的每个IO口都可以作为中断输入,要把IO口作为外部中断输入,有一下几个步骤:
第一步 初始化IO口作为输入
设置你要作为外部中断输入的IO口的状态,可以设置为上拉/下拉输入,也可以设置为浮空输入,
但是浮空的时候一定要带上拉或者下拉电阻,否则可能导致中断不停的触发。在干扰较大的地方,
就算使用了上拉/下拉,也建议使用外部上拉/下拉电阻,这样可以一定程度防止外部干扰带来的影响。
第二步 开启IO口复用时钟,设置IO口于中断线的映射关系
STM32的IO口与中断线的对应关系需要配置外部中断寄存器(EXTICR),怎样我们要先开启复用时钟,
然后配置IO口与中断线的对应关系,才能把外部中断与中断线连接起来。
第三步 开启与该IO口相对的线上中断/事件,设置触发条件
我们要配置中断的产生的条件,STM32可以配置成上升沿触发,下降沿触发,或者任意电平触发,
但是不能配置成高电平或者低电平触发。这里根据自己的实际情况来配置。
注:第二步与第三步可以作为一个整体来设置
第四步 配置中断分组(NVIC),并且使能中断
这一步,就是配置中断分组,以及使能。对STM32的中断来说,只有配置了NVIC的设置,并开启才能被
执行,否则是不会执行到中断服务函数里面去的。
第五步 编写中断服务函数
这是中断设置的最后一步,中断服务函数,是必不可少的,如果代码里开启了中断,但是没编写中断服务
函数,就可能引起硬件错误,从而导致程序崩溃!所以在开启了某个中断后,一定要记得为改中断编写服务
函数。在中断服务函数中编写你要执行的中断后的操作。
发布于
2018-01-03
举报
评论 1
0
0
电子老工程师
回复了 :颜色不同,可以替换使用,跟客户说明清楚。 DTM04-6P GREY DTM04-6P-E004 黑色
回复
其他答案
数量:
5
chen0000009
每个口都可以,要在中断设置那里选择允许某个IO口中断并使能
发布于
2018-01-04
举报
评论 0
0
0
dwwzl
不建议全开,否则你的mcu占用太大了,建议将中断平均分配到ABCDE几个端口上各一个,有利于中断入口判断。
发布于
2018-01-04
举报
评论 1
0
0
电子老工程师
回复了 :不是别称,是两个不同的物料,CWT-3811不是完整型号
回复
快没时间了
都可以,晶振,烧写口不建议使用。
步骤基本就是1,配置IO,设置中断,中断处理。参考下相应的官方cube包工程,或者硬石的程序,我觉得写的不错
发布于
2018-01-04
举报
评论 1
0
0
电子老工程师
回复了 :请参考:1844252
回复
donatello
每个IO口都行,STM32把所有的外部中断归类为16条中断线,如PA0-PH0为同一组中断线,PA1-PH1为同一组中断线,初始化中断外设就是初始化中断线。
发布于
2018-01-04
举报
评论 1
0
0
电子老工程师
回复了 :包装图代码不同。以下有截图说明
回复
莱克迷KW
都是可以的,要把GPIO设置为输入模式,再使用复用功能中的中断功能。
开GPIO时钟与中断时钟。
发布于
2018-01-07
举报
评论 1
0
0
电子老工程师
回复了 :原厂没有提供规格书,只有网页版的http://www.sg-micro.com/show-product-585.html
回复
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
stm32外部中断
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: