STM32笔记记录2
外部中断控制:
STM32的每个IO 都可以作为外部中断的中断输入口,这点也是STM32的强大之处。STM32F103的中断控制器支持19个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19个外部中断为:
线0~15:对应外部IO 口的输入中断。
线16:连接到PVD输出。
线17:连接到RTC闹钟事件。
线18:连接到USB唤醒事件。
STM32供IO 口使用的中断线只有16个,但是STM32的IO 口却远远不止16个,STM32就这样设计,GPIO的管教GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G)分别对应中断线15~0。这样每个中断线对应了最多7个IO 口,以线0为例:它对应了GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、GPIOF.0、GPIOG.0。而中断线每次只能连接到1个IO 口上,这样就需要通过配置来决定对应的中断线配置到哪个GPIO上了。
AFIO(alternate-function I/O),指GPIO端口的复用功能,GPIO除了用作普通的输入输出(主功能),还可以作为片上外设的复用输入输出,如串口、ADC、这些就是复用功能。大多数GPIO都有一个默认复用功能,有的GPIO还有重映射功能,重映射功能是指把原来属于A引脚的默认复用功能,转移到了B引脚进行使用,前提是B引脚具有这个重映射功能。当把GPIO用作EXTI外部中断或使用重映射功能的时候,必须开启AFIO时钟,而使用默认复用功能的时候,就不必开启AFIO时钟了。
主要步骤:1、使能EXTIx线的时钟和第二功能AFIO时钟
2、配置EXTIx先得中断优先级
3、配置EXTI中断线IO
4、选定要配置为EXTI的IO口线和IO口的工作模式
5、EXTI中短线工作模式配置
另外:NVIC_PriorityGroupConfig()库函数,把NVIC中的中断优先级分组设置;然后再向NVIC初始化结构体写入参数。NVIC_IRQChannel=EXTI9_5_IRQn,表示要配置的为EXTI第5-9线的中断向量。这些写入的参数在stm32f10x.h文件的IRQn类型定义中查到。
中短线0-4每个中断线对应一个中断函数,中断线5-9共用中断函数EXTI9_5_IRQHandler,中断线10-15共用中断函数EXTI15-10-IRQHandler。在编写中断服务函数的时候会经常使用到两个函数,第一个函数是判断某个中断线上的中断是否发生(标志位是否置位):
ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);
这个函数一般使用在中断服务函数的开头判断中断是否发生。另一个函数是清除某个中断线上的中断标志位:
void EXTI_ClearITPendingBit(uint32_t EXTI_Line);
这个函数一般应用在中断服务函数结束之前,清除中断标志位
STM32笔记记录2相关推荐
- 关于NB-IOT模块链接阿里物联网平台的学习笔记-记录
关于NB-IOT模块链接阿里物联网平台思路的学习笔记-记录 叙述 调试思路总结 调试过程 AT命令-方式一 AT命令-方式二 AT命令-方式三 软件 关于遇到问题 总结 叙述 前一段是写了一篇&quo ...
- linux mysql5.6编译_Linux 环境下编译安装MySQL5.6的笔记记录
一.首先搭建好Linux环境,我这边使用的是redhat enterprise 6.5,并且建议磁盘划分逻辑卷,以便后期的扩容工作. 二.环境搭建好了之后,我们就要去准备MySQL的安装文件,到现在为 ...
- mysql 5.6.37 winx64_Mysql 5.6.37 winx64安装双版本mysql笔记记录
机器上现在已经存在5.0版本Mysql的情况下,继续安装一个最新版的mysql. 一.官网下载免安装压缩包. 本人下载的是mysql-5.6.37-winx64.zip.将压缩包解压到自定义目录中.例 ...
- 今天研究 Client本来是关联的Expression接口,笔记记录一下。
(很抱歉,由于博客图片审核功能尚未完成,普通用户暂时关闭引用站外图片功能,请您谅解,我们会尽快开放.) 针对这个类图,LZ简单的说两点.<p> 1.C ...
- Activiti 学习笔记记录(2016-8-31)
上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件 转载于:https://ww ...
- 一起初学java,笔记记录的第五天:数组、排序和查找
一起初学java,笔记记录的第五天:数组.排序和查找 适用于初学java者 这个首先指出本文中图片和资源来自**韩顺平**老师,感谢老师做的无私奉献的教学! 1. 数组介绍 数组可以存放多个同一类型的 ...
- 笔记记录软件:NoteRecorder
利用SQLite数据库做了个笔记记录软件,加上搜索功能,方便自己记录东西所用.下载地址 (请在安装了.net framework 3.0/3.5的机器上运行,win7默认已安装该运行时) 参考资料: ...
- 【STM32笔记】HAL库低功耗STOP停止模式的串口唤醒(解决进入以后立马唤醒、串口唤醒和回调无法一起使用、接收数据不全的问题)
[STM32笔记]HAL库低功耗STOP停止模式的串口唤醒(解决进入以后立马唤醒.串口唤醒和回调无法一起使用.接收数据不全的问题) [STM32笔记]低功耗模式配置及避坑汇总 前文: blog.csd ...
- 【STM32笔记】低功耗模式配置及避坑汇总
[STM32笔记]低功耗模式配置及配置汇总 文章总结:(后续更新以相关文章为准) [STM32笔记]低功耗模式.WFI命令等进入不了休眠的可能原因(系统定时器SysTick一直产生中断) [STM32 ...
- 【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案)
[STM32笔记]HAL库低功耗模式配置(ADC唤醒无法使用.低功耗模式无法烧录解决方案) [STM32笔记]低功耗模式配置及避坑汇总 一.低功耗模式简介 系统提供了多个低功耗模式,可在 CPU 不需 ...
最新文章
- mysql非聚集索引区间查询_mysql的聚集索引和非聚集索引,回表查询,索引覆盖,最左前缀原则略解...
- 百战百胜:人生10个成功秘诀
- 用户home目录下的.gitconfig 和 库文件夹目录下的 .gitignore 示例
- create-react-app 脚手架构建项目,搬砖过程中持续总结心得
- GitHub 项目 增加成员
- socket 通信关于bind那点事
- React中解决样式丢失问题
- HYSBZ - 1101——莫比乌斯反演
- c语言中int的取值范围_c语言入门(1)
- ArrayList如何实现增删元素及其缺陷
- Chrome 强制显示最小字体为 12px的解决方法
- 使用Beyond Compare一类文件目录比较器时,要注意忽略的目录文件设置
- systemVerilog的typedef用法
- 通达信画线文件是在服务器吗,通达信画线工具的使用说明★★★★
- ESP8266-Arduino编程实例-SHT20温湿度传感器驱动
- 算法笔记方法论4 枚举法 详细笔记
- 手机屏幕材质详解(TFT,TPS,OLED,AMOLED等)
- iOS监听模式系列之本地通知Notification
- C++方式实现餐饮管理系统
- layui中table表格内容过多自动换行