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 ...
随机推荐
- DRF一对多序列化和反序列化
models.py # 商品分类 class Category(models.Model): name = models.CharField(max_length=32) # 商品 class Goo ...
- windows下快速安装tensorflow
下载安装文件 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ 配置pip参数文件 [global] index-url = https://mi ...
- 第一个----关于GPIO的总结
首先,自己本来报的是单片机的 ,但是因为队友的脑残,给我报成了嵌入式,哎,惨啊,就得从头看这个云里雾里的东西,但是没办法,都报名了 不能呢个交白卷,不然自己就是逃兵了,还有20天就比赛了 我得加 ...
- 吴裕雄--天生自然 JAVA开发学习:抽象类
public abstract class Employee { private String name; private String address; private int number; pu ...
- 微服务监控druid sql
参考该文档 保存druid的监控记录 把日志保存的关系数据数据库(mysql,oracle等) 或者nosql数据库(redis,芒果db等) 保存的时候可以增加微服务名称标识好知道是哪个微服务的sq ...
- cas sso单点登录 登录过程和登出过程原理说明
CAS大体原理我就不说了,网上一大把,不过具体交互流程没说清楚,所以有这篇文章,如果有错误,请多多指教 登录过程 用户第一次访问一个CAS 服务的客户web 应用时(访问URL :http://192 ...
- 【ubuntu】乱七八糟
https://blog.csdn.net/totorocyx/article/details/80032556 https://blog.csdn.net/weixin_40662331/artic ...
- Selenium处理alert/confirm/prompt提示框
About 回到顶部 重新认识alert首先,不是所有的alert都能叫做alert框.JavaScript中,关于消息提示框的方法有三个(虽然都跟alert差不多): alert(message)方 ...
- 利用卷积神经网络实现MNIST手写数据识别
代码: import torch import torch.nn as nn import torch.utils.data as Data import torchvision # 数据库模块 im ...
- mysql简介/安装以及破解密码等
1.什么是数据库: 数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的 过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用 数据库是长期存放在计算机内.有 ...