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

查看: 12019|回复: 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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版