STM32 一个初始化EXTI的例子
23 May 2017
» Hardware
注:STM32F407VGT6 with STM32F4 DSP and standard peripherals library v1.8.0
外部中断源码
//中断服务函数
void EXTI2_IRQHandler(void)
{
delay_ms(10);
if (KEY==0)
{
LED=~LED;
}
EXTI_ClearITPendingBit(EXTI_Line2);
} //中断初始化函数
void EXTIX_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure; //中断初始化结构体定义
NVIC_InitTypeDef NVIC_InitStructure; //中断优先级结构体定义 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOE,ENABLE);
//使能IO口时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
//使能SYSCFG时钟
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE,EXTI_PinSource2);
//配置GPIO与中断线的映射关系 //中断初始化结构体配置
EXTI_InitStructure.EXTI_Line=EXTI_Line2;
//选定为中断线2
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
//配置为中断模式
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
//配置中断触发方式
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
//使能中断线
EXTI_Init(&EXTI_InitStructure);
//初始化外部中断 //中断优先级结构体配置
NVIC_InitStructure.NVIC_IRQChannel=EXTI2_IRQn;
//选定为中断通道2
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x00;
//配置抢占优先级(主优先级)
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x00;
//配置响应优先级(从优先级)
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
//使能中断通道
NVIC_Init(&NVIC_InitStructure);
//初始化中断优先级
}
还需在主函数中加入
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//设置优先级分组
EXTIX_Init();
//初始化外部中断
外部中断的一般配置步骤:
1.使能SYSCFG时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
2.初始化IO口为输入
GPIO_Init();
3.设置IO口与中断线的映射关系
大专栏 STM32 一个初始化EXTI的例子s="highlighter-rouge">SYSCFG_EXTILineConfig();
4.初始化线上中断,设置触发条件等
EXTI_Init();
5.配置中断分组(NVIC),并使能中断
NVIC_Init();
6.编写中断服务函数
EXTIx_IRQHandler();
7.清除中断标志位
EXTI_ClearITPendingBit();
STM32 一个初始化EXTI的例子的更多相关文章
- 一个简单的CORBA例子
因为对CORBA分析的需要,这里写一个简单的CORBA例子.从JDK1.2开始,JDK中集成了ORB的实现,本例子使用了JDK1.7,对于JDK1.2+应该都没有问题.这个例子实现一个简单的加减乘除的 ...
- pytion3--class一个更实际的例子
class一个更实际的例子 到目前为止,我们所看的大多数例子都是人为创造而且是独立完备的,其目的是为了帮助你把注意力集中在基础知识上.然而,本章的结尾是一个较大的例子,把我们所学的大多数概念都聚合在这 ...
- netty-1.从一个最简单的例子开始
(原) 第一篇,从一个最简单的例子开始 1.netty是干什么,怎么用,这里不作介绍,先从一个例子来了解它, netty 5.0以上的版本被废弃了,以下例子从4.1.10.Final版本开始. 2.一 ...
- 关于Java中的继承和组合的一个错误使用的例子
[TOC] 关于Java中的继承和组合的一个错误使用的例子 相信绝大多数人都比较熟悉Java中的「继承」和「组合」这两个东西,本篇文章就主要就这两个话题谈论一下.如果我某些地方写的不对,或者比较幼稚, ...
- java 多线程——一个定时调度的例子
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
- 轻松创建nodejs服务器(1):一个简单nodejs服务器例子
这篇文章主要介绍了一个简单nodejs服务器例子,本文实现了一个简单的hello world例子,并展示如何运行这个服务器,需要的朋友可以参考下 我们先来实现一个简单的例子,hello world ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)
使用Multiplayer Networking做一个简单的多人游戏例子-1/3 使用Multiplayer Networking做一个简单的多人游戏例子-2/3 使用Multiplayer Netw ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51007512 ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 ...
随机推荐
- python 输入输出 条件判断 循环
1.条件判断 score = int(input("请输入学生成绩:"))if score>100 and score <0: print("请输入正确的成绩 ...
- 二、Shell脚本高级编程实战第二部
一.什么是变量? 变量就是一个固定的字符串替代更多更复杂的内容,当然内容里面可能还有变量.路径.字符串等等内容,最大的特点就是方便,更好开展工作 1.变量有环境变量(全局变量)和局部变量 环境变量就是 ...
- RDD(二)——创建
RDD的创建 1)从内存中创建 从集合中创建RDD,Spark主要提供了两种函数:parallelize和makeRDD val raw: RDD[Int] = sc.parallelize(1 to ...
- linux 线程间发送信号
线程间通过 pthread_kill(thid,signo)给指定的thid线程发送signo信号. 创建线程与线程屏蔽字顺序 1. pthread_create(); pthread_sigm ...
- Overlapping generations model
I.6 Overlapping generations 世代被分离开,世代不重复一定满足哈代公式的条件,但是现实情况远没有这么简单(因为会世代重叠,即亲代死去同时一个亲代在不同时间都有可能产生子代,因 ...
- Linux系统国内镜像站点
一,更换说明 第一步 备份 如centos, mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ...
- TreeviewEditor.rar
本工具可以打开.保存指定格式的XML文件. 树形控件的节点可以编辑.删除.增加.使用本工具看方便地创建书或论文的目录大纲,我用这个工具已经写了好几本书了. 动态图1: 动态图2:编辑效果,支持节点拖曳 ...
- python3多线程应用详解(第四卷:图解多线程中LOCK)
先来看下图形对比: 发现没有这种密集型计算的任务中,多线程没有穿行的速率快,原因就是多线程在线程切换间也是要耗时的而密集型计算任务执行时几乎没以偶IO阻塞,这样你说谁快
- [LC] 19. Remove Nth Node From End of List
Given a linked list, remove the n-th node from the end of list and return its head. Example: Given l ...
- Hadoop_在linux中安装hadopp出现的问题
问题 sudo: no valid sudoers sources found, quitting 网络解决方法 链接:sudo: no valid sudoers sources found, qu ...