你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32F030探索套件】序列之五 外部中断

[复制链接]
outstanding1573 提问时间:2014-1-5 17:10 /
 一、硬件和软件平台
硬件平台:STM32F030探索套件
编译环境:MDK
硬件工具:Mini USB   
主要文件:key.h、key.c、exti.c和exti.h 
二、按键控制有两种基本的方式
1.按键扫描控制
2.按键中断控制
按键扫描效率相对要低,因为他一直需要MCU不停的扫描,这就会导致资源的浪费。而按键中断就很巧妙的弥补了这个缺点,只要系统IO口出现上升沿或下降沿电平就会触发执行中断内的程序。这样就不会限制MCU的工作。
三、外部中断简单讲解
在F030英文手册88页的3.9节就讲述了中断和事件,具体可以参考STM32F10x系列的,原理基本一样。
下面主要是对按键中断控制进行讲解:
1.配置GPIO与中断线的映射关系的函数SYSCFG_EXTILineConfig(),该函数将 GPIO端口与中断线映射起来;
2.IO口的中断触发方式:设置该中断线上中断的初始化参数,中断线上中断的初始化是通过函数EXTI_Init()实现的;
3. 在编写中断服务函数的时候会经常使用到两个函数,第一个函数是判断某个中断线上的中断是否发生(标志位是否置位) :ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)这个函数一般使用在中断服务函数的开头判断中断是否发生。
4.另一个函数是清除某个中断线上的中断标志位:这个函数一般应用在中断服务函数结束之前,清除中断标志位。void EXTI_ClearITPendingBit(uint32_t EXTI_Line)
这两个函数均在stm32f0xx_exti.c里面,大家可以查看。
5.中断服务函数,一般有固定的格式:
void EXTIx_x_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Linex)!=RESET)//判断某个线上的中断是否发生 
{
中断逻辑…
EXTI_ClearITPendingBit(EXTI_Linex);   //清除 LINEx 上的中断标志位
}     
}
四、用IO口外部中断的一般步骤:
1.初始化IO口为输入;
2.开启IO口时钟,设置 IO 口与中断线的映射关系;
3.初始化线上中断,设置触发条件等;
4.配置中断分组(NVIC),并使能中断;
5.编写中断服务函数。
五、实验结果图片
QQ图片20140105164401.jpg
 
 
 
【STM32F030探索套件】实验三:按键中断.zip (230.94 KB, 下载次数: 760)
1 收藏 2 评论73 发布时间:2014-1-5 17:10

举报

73个回答
F_resh 回答时间:2015-2-5 08:55:20
                        XX
cypan 回答时间:2020-7-29 14:17:01
我按你这个格式改了下PA0  然后一直都不进中断服务函数。楼主能帮我看看么?
夜落叶 回答时间:2023-6-7 13:15:45

来看看 能不能解决问题。

outstanding1573 回答时间:2014-1-5 17:11:21

RE:【STM32F030探索套件】序列之五 外部中断

  第一次发帖
沐紫 回答时间:2014-1-6 08:46:06

RE:【STM32F030探索套件】序列之五 外部中断

Good!欢迎楼主将其他系列也分享出来!
 
再推荐阅读:
STM32F030探索套件开发日志,中文教程,使用问答70篇
rbbjj 回答时间:2014-1-8 10:44:05

RE:【STM32F030探索套件】序列之五 外部中断

看看,谢谢!
MrJiu 回答时间:2014-1-8 14:26:55

回复:【STM32F030探索套件】序列之五 外部中断

东西需要啊..............
leaf198310 回答时间:2014-1-8 18:43:26

RE:【STM32F030探索套件】序列之五 外部中断

饿饿饿饿 饿
sun2005 回答时间:2014-1-9 08:19:18

回复:【STM32F030探索套件】序列之五 外部中断

谢谢!
 
zdlwzh2006 回答时间:2014-1-9 16:40:45

回复:【STM32F030探索套件】序列之五 外部中断

看看
KingQueenWong 回答时间:2014-1-12 14:36:18

RE:【STM32F030探索套件】序列之五 外部中断

嘻嘻,不错,谢谢啦,
outstanding1573 回答时间:2014-1-12 20:00:01

回复:【STM32F030探索套件】序列之五 外部中断

回复第 3 楼 于2014-01-06 08:46:06发表:
Good!欢迎楼主将其他系列也分享出来!
 
再推荐阅读:
STM32F030探索套件开发日志,中文教程,使用问答70篇
 
 
恩  奋斗中
 
outstanding1573 回答时间:2014-1-12 20:00:44

回复:【STM32F030探索套件】序列之五 外部中断

回复第 9 楼 于2014-01-12 14:36:18发表:
嘻嘻,不错,谢谢啦,
 
哈哈 加油
 
outstanding1573 回答时间:2014-1-12 20:01:19

回复:【STM32F030探索套件】序列之五 外部中断

回复第 8 楼 于2014-01-09 16:40:45发表:
看看
 

 
outstanding1573 回答时间:2014-1-12 20:01:35

回复:【STM32F030探索套件】序列之五 外部中断

回复第 4 楼 于2014-01-08 10:44:05发表:
看看,谢谢!
 
 

 
outstanding1573 回答时间:2014-1-12 20:02:00

回复:【STM32F030探索套件】序列之五 外部中断

回复第 5 楼 于2014-01-08 14:26:55发表:
东西需要啊..............
 
 

 
feihang93816 回答时间:2014-1-13 08:38:57

RE:【STM32F030探索套件】序列之五 外部中断

very good!
12345下一页

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版