EXTI中断程序实例
来源:互联网 发布:网络数据库和搜索引擎 编辑:程序博客网 时间:2024/05/21 10:04
1
2
3
4
5
6
7
8
9
10
11
#ifndef __EXTI_H__
#define __EXTI_H__
#include "stm32f10x.h"
#include "MyTime.h"
#include "bitband.h"
void
EXTI_Configuration(
void
);
void
EXTI2_IRQHandler(
void
) ;
#endif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "exti.h"
#include "key.h"
void
EXTI_Configuration(
void
)
{
EXTI_InitTypeDef EXTI_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
//1)初始化 IO 口为输入
KEY_Configuration();
//2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);
//3)初始化线上中断,设置触发条件等
EXTI_InitStruct.EXTI_Line = EXTI_Line2;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStruct);
//4)配置中断分组(NVIC),并使能中断
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStruct.NVIC_IRQChannel = EXTI2_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);
}
//5)编写中断服务函数。
void
EXTI2_IRQHandler(
void
)
{
MyDelay_ms(10);
//消抖
if
(KEY2==0)
//按键KEY2
{
LED0=!LED0;
}
EXTI_ClearITPendingBit(EXTI_Line2);
//清除 LINE2 上的中断标志位
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "MyTime.h"
#include "exti.h"
int
main(
void
)
{
MySysTick_Init();
//点亮灯
GPIO_Configuration();
EXTI_Configuration();
while
(1);
}
1
2
3
4
5
1)初始化 IO 口为输入。
//KEY_Configuration
2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。
3)初始化线上中断,设置触发条件等。
4)配置中断分组(NVIC),并使能中断。
5)编写中断服务函数。
0 0
- EXTI中断程序实例
- 【读书笔记】EXTI外部中断 实例
- stm32 exti中断
- stm32之EXTI中断
- STM32之EXTI(中断)
- 外部中断EXTI
- EXTI外部中断
- STM32 EXTI外部中断
- stm32之外部中断EXTI
- Stm32 外部中断EXTI使用说明
- Stm32 外部中断EXTI使用说明
- STM32之外部中断 EXTI
- STM32--EXTI(外部中断)
- 中断服务程序实例
- STM32的外部中断EXTI开发总结
- stm32 EXTI对应的中断函数
- STM32单片机----外部中断EXTI学习
- STM32之EXTI——外部中断
- SQL优化
- 垃圾回收机制(三)
- Java api 文件基本的输入输出流
- 栈的应用——四则表达式求值
- iOS隐藏键盘实现和针对键盘遮挡输入控件的解决
- EXTI中断程序实例
- [Practical.Vim(2012.9)].Drew.Neil.Tip95 学习摘要
- 从C到C++再到Obj-C内存管理学习笔记(三)
- 拦截器的重名使用问题
- KMP 算法
- Java 抽象类与接口
- 图像基本群运算--滤波
- 树链剖分学习
- XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效)