您的位置 首页 主动

STM32外部中止易犯错总结

前言:这些问题都是我之前在工作中遇到的,后来觉得需要总结,自己记忆不好,所以在这个给自己打个mark。一:触发方式STM32的外部中断是通

前语:这些问题都是我之前在作业中遇到的,后来觉得需求总结,自己回忆欠好,所以在这个给自己打个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;,由于软件中止先于边缘中止处理。

我的问题呈现在没有发动AFIO时钟信号;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);导致总也进不了中止

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/258380.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部