新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32 外部中斷 易出錯(cuò)總結(jié)

STM32 外部中斷 易出錯(cuò)總結(jié)

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
前言:這些問(wèn)題都是我之前在工作中遇到的,后來(lái)覺(jué)得需要總結(jié),自己記憶不好,所以在這個(gè)給自己打個(gè)mark。

一:觸發(fā)方式

本文引用地址:http://m.butianyuan.cn/article/201611/318695.htm

STM32外部中斷是通過(guò)邊沿來(lái)觸發(fā)的,不支持電平觸發(fā);

二:外部中斷分組

STM32的每一個(gè)GPIO都能配置成一個(gè)外部中斷觸發(fā)源,STM32通過(guò)根據(jù)引腳的序號(hào)不同將眾多中斷觸發(fā)源分成不同的組,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0為第一組,那么依此類推,我們能得出一共有16組,STM32規(guī)定,每一組中同時(shí)只能有一個(gè)中斷觸發(fā)源工作,那么,最多工作的也就是16個(gè)外部中斷。

STM32分組和對(duì)應(yīng)中斷處理函數(shù)分配:

管腳

中斷標(biāo)志

中斷處理函數(shù)分配

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

三:外部中斷的配置過(guò)程

l配置觸發(fā)源-GPIO

觸發(fā)源為通過(guò)GPIO端口輸入,所以,要配置GPIO的模式,輸入方式,輸入方式有以下幾種:

1.GPIO_Mode_AIN,模擬輸入(ADC模擬輸入,或者低功耗下省電)

2.GPIO_Mode_IN_FLOATING,浮空輸入

3.GPIO_Mode_IPD=0x28,帶下拉輸入

4.GPIO_Mode_IPU=0x48,帶上拉輸入

l引腳與外部中斷關(guān)聯(lián)

l外部中斷AFIO時(shí)鐘開(kāi)啟

l外部中斷配置

這個(gè)主要是中斷線路選擇,中斷觸發(fā)方式,中斷使能。

l中斷優(yōu)先級(jí)配置NVIC

l中斷處理函數(shù)的編寫(xiě)。

四:外部中斷函數(shù)不能進(jìn)入的原因分析

結(jié)合我工作中的遇到的問(wèn)題可以分為:

1)GPIO或者AFIO的時(shí)鐘沒(méi)有開(kāi)啟;

2)GPIO和配置的中斷線路不匹配;

3)中斷觸發(fā)方式和實(shí)際不相符合;

4)中斷處理函數(shù)用庫(kù)函數(shù)時(shí),寫(xiě)錯(cuò),經(jīng)??赡艹霈F(xiàn)數(shù)字和字母之間沒(méi)有下劃線;

5)外部中斷是沿觸發(fā),有可能不能檢測(cè)到沿,比如中斷線是低電平(浮空輸入),觸發(fā)是下降沿觸發(fā),可能會(huì)出現(xiàn)一直是低電平,高電平的時(shí)候是一樣的情況,電平持續(xù)為高電平;

6)沒(méi)有用軟件中斷來(lái)觸發(fā)外部中斷,調(diào)用函數(shù)EXTI_GenerateSWInterrupt;,因?yàn)檐浖袛嘞扔谶呇刂袛嗵幚怼?/p>



評(píng)論


技術(shù)專區(qū)

關(guān)閉