博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STM32的外部中断配置及使用
阅读量:7008 次
发布时间:2019-06-28

本文共 2920 字,大约阅读时间需要 9 分钟。

STM32的外部中断配置及使用

配置1:GPIO;

配置外部中断为输入模式;

配置2:EXTI;

配置外部中断线和触发模式;

配置3:NVIC;

配置外部中断源和中断优先级;

 

需要注意的是:RCC_APB2Periph_AFIO 时钟必须打开,容易忽略的一点;

 

1 void EXTI_PORTC_CONFIG(void) 2 { 3         GPIO_InitTypeDef GPIO_InitStructure; 4         EXTI_InitTypeDef EXTI_InitStructure; 5         NVIC_InitTypeDef NVIC_InitStructure; 6  7         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE); 8  9         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;10         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ; //内部上拉11         GPIO_Init(GPIOC, &GPIO_InitStructure);12     13         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;14         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ; //内部上拉15         GPIO_Init(GPIOC, &GPIO_InitStructure);16     17         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;18         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ; //内部上拉19         GPIO_Init(GPIOC, &GPIO_InitStructure);20 21         GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource2);22         GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource3);23         GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource5);24 25         EXTI_InitStructure.EXTI_Line = EXTI_Line2; 26         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;27         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;28         EXTI_InitStructure.EXTI_LineCmd = ENABLE;29         EXTI_Init(&EXTI_InitStructure);30         31         EXTI_InitStructure.EXTI_Line = EXTI_Line3; 32         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;33         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;34         EXTI_InitStructure.EXTI_LineCmd = ENABLE;35         EXTI_Init(&EXTI_InitStructure);36         37         EXTI_InitStructure.EXTI_Line = EXTI_Line5; 38         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;39         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;40         EXTI_InitStructure.EXTI_LineCmd = ENABLE;41         EXTI_Init(&EXTI_InitStructure);42 43         NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;44         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;45         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;46         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;47         NVIC_Init(&NVIC_InitStructure);48         49         NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;50         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;51         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;52         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;53         NVIC_Init(&NVIC_InitStructure);54         55         NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;56         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;57         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;58         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;59         NVIC_Init(&NVIC_InitStructure);60 }

 

转载于:https://www.cnblogs.com/achao123456/p/5226954.html

你可能感兴趣的文章
tomcat发布web项目,支持域名
查看>>
webstom设置和monokia配色方案
查看>>
js和Jquery获取选中select值和文本
查看>>
Linux系统排查1——内存篇
查看>>
Java实现注册邮箱激活验证
查看>>
数据库缓存
查看>>
mvc 数据验证金钱格式decimal格式验证
查看>>
常用的Web服务器
查看>>
UPW学习资料整理 .NET C# 转
查看>>
Oracle12c中新建用户
查看>>
分布式编译工具
查看>>
对我而言晦涩的递归
查看>>
React Native 从入门到原理
查看>>
iOS如何随意的穿插跳跃,push来pop去
查看>>
使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq
查看>>
Strut2中的session和servlet中的session的区别
查看>>
自定义adapter实现listview双列显示
查看>>
MyBatis——实现关联表查询
查看>>
struts2的MVC模式
查看>>
cocos2d-x JS 复选按钮checkBox的单选与多选
查看>>