STM32 外部中断 易出错总结
来源:互联网 发布:linux怎么删除目录 编辑:程序博客网 时间:2024/04/24 21:39
前言:这些问题都是我之前在工作中遇到的,后来觉得需要总结,自己记忆不好,所以在这个给自己打个mark。
一:触发方式
STM32 的外部中断是通过边沿来触发的,不支持电平触发;
二:外部中断分组
STM32 的每一个GPIO都能配置成一个外部中断触发源,STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,那么依此类推,我们能得出一共有16 组,STM32 规定,每一组中同时只能有一个中断触发源工作,那么,最多工作的也就是16个外部中断。
STM32 分组和对应中断处理函数分配:
管脚
中断标志
中断处理函数分配
PA0~PG0
EXTI0
EXTI0_IRQHandler
PA1~PG1
EXTI1
EXTI1_IRQHandler
PA2~PG2
EXTI2
EXTI2_IRQHandler
PA3~PG3
EXTI3
EXTI3_IRQHandler
PA4~PG4
EXTI4
EXTI4_IRQHandler
PA5~PG5
EXTI5
EXTI9_5_IRQHandler
PA6~PG6
EXTI6
PA7~PG7
EXTI7
PA8~PG8
EXTI8
PA9~PG9
EXTI9
PA10~PG10
EXTI10
EXTI15_10_IRQHandler
PA11~PG11
EXTI11
PA12~PG12
EXTI12
PA13~PG13
EXTI13
PA14~PG14
EXTI14
PA15~PG15
EXTI15
三:外部中断的配置过程
l 配置触发源 -GPIO
触发源为通过GPIO端口输入,所以,要配置GPIO的模式,输入方式,输入方式有以下几种:
1.GPIO_Mode_AIN ,模拟输入(ADC模拟输入,或者低功耗下省电)
2.GPIO_Mode_IN_FLOATING ,浮空输入
3.GPIO_Mode_IPD = 0x28,带下拉输入
4.GPIO_Mode_IPU = 0x48,带上拉输入
l 引脚与外部中断关联
l 外部中断AFIO时钟开启
l 外部中断配置
这个主要是中断线路选择,中断触发方式,中断使能。
l 中断优先级配置 NVIC
l 中断处理函数的编写。
四:外部中断函数不能进入的原因分析
结合我工作中的遇到的问题可以分为:
1)GPIO或者AFIO的时钟没有开启;
2)GPIO和配置的中断线路不匹配;
3)中断触发方式和实际不相符合;
4)中断处理函数用库函数时,写错,经常可能出现数字和字母之间没有下划线;
5)外部中断是沿触发,有可能不能检测到沿,比如 中断线是低电平(浮空输入),触发是下降沿触发,可能会出现一直是低电平,高电平的时候是一样的情况,电平持续为高电平;
6)没有用软件中断来触发外部中断,调用函数EXTI_GenerateSWInterrupt;,因为软件中断先于边沿中断处理。
- STM32 外部中断 易出错总结
- STM32 外部中断 易出错总结
- STM32外部中断总结
- STM32 GPIO外部中断总结
- STM32 GPIO外部中断总结
- STM32的外部中断EXTI开发总结
- STM32外部中断测试
- STM32外部中断测试
- STM32外部中断
- STM32外部中断设置
- STM32外部中断
- STM32外部中断
- STM32外部中断详解
- STM32外部中断详解
- STM32外部中断
- STM32外部中断详解
- STM32 外部中断
- 关于STM32外部中断
- 批量修改PostgreSQL数据表的名称
- oradebug 命令使用说明
- UVa11455 - Behold my quadrangle
- Android4
- 初识字节对齐
- STM32 外部中断 易出错总结
- PostgreSQL学习手册(系统视图)
- nutch java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence
- spring利用set操作对引用类型和集合类型进行注入值
- StringUtils详细介绍
- android:屏幕自适应
- auto,register,static分析
- 10进制转换16进制
- asp.net开发常用技巧收集