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 ...
随机推荐
- docker安装(centos-7)
centos7安装docker:Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker .通过 uname -r 命令 ...
- <黑马新秀>Spring学习日志
# 用于梳理Spring知识点 Spring是分层的Java EE应用全栈轻量级开源框架,以IoC(Inverse Of Control反转控制)和AOP(Aspect Oriented Progra ...
- 基础服务系列-Jupyter Install TensorFlow
TensorFlow is a deep learning framework that provides an easy interface to a variety of functionalit ...
- TPO5-1 Minerals and plants
Only recently have investigators considered using these plants to clean up soil and waste sites that ...
- python基础——认识(if __name__ == ‘__main__’:)
我们在写代码时,经常会用到这一句:if __name__ == '__main__',那么加这一句有什么用呢?实际上,它起到到了一个代码保护功能,它能够让别人在导入你写的模块情况下,无法看到和运行if ...
- EternalBlue永恒之蓝漏洞复现
EternalBlue漏洞复现 1. 实训目的 永恒之蓝(EternalBlue)是由美国国家安全局开发的漏洞利用程序,对应微软漏洞编号ms17-010.该漏洞利用工具由一个名为”影子经济人”( ...
- VScode中Python的交互式命令环境使用笔记
前言 时间比较久了,忘记了具体配置了,不讲搭建了,提供参https://www.zhihu.com/question/49799276,或自行谷歌,常用的插件Python和Code Runner. 本 ...
- Oauth2 初步
搭建一个最简单的 Oauth2 认证服务 基于 Springboot2,在 pom.xml 中引入 Oauth2: 123456789101112 <dependency> <gro ...
- 调用其他VBA工程中的过程和函数以及API函数
Excel VBA中,同一个应用程序下面包括多个工作簿,每个工作簿都有自己独立的VBAProject 在同一个VBA工程中,使用Call即可调用其他模块中的过程和函数,例如: Call Module2 ...
- 75)PHP,session在使用时的一些语法问题
(1)cookie仅能存字符串类型,但是session能存任何数据类型,比如: 然后我在session_2.php中输出这个session_1.php的数据: 结果展示: 我得在浏览器的地址栏中先请求 ...