发新帖本帖赏金 0.20元(功能说明)我要提问
返回列表
打印
[应用相关]

STM32 外部中断 易出错总结

[复制链接]
5048|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
前言:这些问题都是我之前在工作中遇到的,后来觉得需要总结,自己**不好,所以在这个给自己打个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;,因为软件中断先于边沿中断处理。

打赏榜单

icecut 打赏了 0.20 元 2015-06-29

沙发
vigous1| | 2015-3-30 21:31 | 只看该作者
STM32 外部中断 易出错总结 的很好

使用特权

评论回复
板凳
pwppwpw| | 2015-6-29 15:05 | 只看该作者
前辈的总结很有帮助!

自己不幸被第一条言中,忘记开启复用输入AFIO的时钟,导致进不去外部中断。

根据这张结构图就知道,使用STM32的EXTI,必须设置AFIO!!!

搜狗截图20150629150900.png (55.89 KB )

搜狗截图20150629150900.png

使用特权

评论回复
地板
icecut| | 2015-6-29 15:36 | 只看该作者
赏两毛钱试试

使用特权

评论回复
5
捉虫天师| | 2015-6-29 18:37 | 只看该作者

STM32 外部中断 易出错总结 的很好

使用特权

评论回复
6
米尔豪斯| | 2015-6-29 19:18 | 只看该作者
没有用软件中断来触发外部中断,调用函数EXTI_GenerateSWInterrupt;软件中断先于边沿中断处理。

使用特权

评论回复
7
Thor9| | 2015-6-29 19:32 | 只看该作者
中断处理函数用库函数时,写错,经常可能出现数字和字母之间没有下划线

这是怎么说

使用特权

评论回复
8
杨千鸟| | 2017-4-5 19:32 | 只看该作者
有点帮助 不错   但是不知道楼主遇到过外部中断不稳定的情况吗  弄得和按键外部中断似的  中断一下,结果记了好几个数

使用特权

评论回复
9
qiufengsd| | 2017-4-5 22:31 | 只看该作者
这个外部中断有什么问题

使用特权

评论回复
10
qiufengsd| | 2017-4-5 22:34 | 只看该作者
这个中断程序没有,配置的问题。

使用特权

评论回复
发新帖 本帖赏金 0.20元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

421

帖子

9

粉丝