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

查看: 12048|回复: 72

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

[复制链接]

30

主题

318

回帖

0

蝴蝶豆

中级会员

最后登录
2017-12-6
发表于 2014-1-5 17:10:51 | 显示全部楼层 |阅读模式
 一、硬件和软件平台
硬件平台: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, 下载次数: 724)
<
回复

使用道具 举报

30

主题

318

回帖

0

蝴蝶豆

中级会员

最后登录
2017-12-6
 楼主| 发表于 2014-1-5 17:11:21 | 显示全部楼层

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

  第一次发帖
回复 支持 反对

使用道具 举报

307

主题

3125

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-7-17
发表于 2014-1-6 08:46:06 | 显示全部楼层

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

Good!欢迎楼主将其他系列也分享出来!
 
再推荐阅读:
STM32F030探索套件开发日志,中文教程,使用问答70篇
回复 支持 反对

使用道具 举报

0

主题

36

回帖

0

蝴蝶豆

中级会员

最后登录
2020-10-16
发表于 2014-1-8 10:44:05 | 显示全部楼层

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

看看,谢谢!
回复 支持 反对

使用道具 举报

3

主题

999

回帖

363

蝴蝶豆

版主

最后登录
2020-11-26
发表于 2014-1-8 14:26:55 | 显示全部楼层

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

东西需要啊..............
回复 支持 反对

使用道具 举报

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-1-8 18:43:26 | 显示全部楼层

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

饿饿饿饿 饿
回复 支持 反对

使用道具 举报

3

主题

77

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-8-12
发表于 2014-1-9 08:19:18 | 显示全部楼层

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

谢谢!
 
回复 支持 反对

使用道具 举报

0

主题

13

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-1-9 16:40:45 | 显示全部楼层

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

看看
回复 支持 反对

使用道具 举报

0

主题

11

回帖

0

蝴蝶豆

中级会员

最后登录
2020-11-29
发表于 2014-1-12 14:36:18 | 显示全部楼层

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

嘻嘻,不错,谢谢啦,
回复 支持 反对

使用道具 举报

30

主题

318

回帖

0

蝴蝶豆

中级会员

最后登录
2017-12-6
 楼主| 发表于 2014-1-12 20:00:01 | 显示全部楼层

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

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

使用道具 举报

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