1. 程式人生 > >STM32 外部中斷 易出錯總結

STM32 外部中斷 易出錯總結


前言:這些問題都是我之前在工作中遇到的,後來覺得需要總結,自己記憶不好,所以在這個給自己打個mark。

一:觸發方式

STM32 的外部中斷是通過邊沿來觸發的,不支援電平觸發;

二:外部中斷分組

STM32 的每一個GPIO都能配置成一個外部中斷觸發源,STM32 通過根據引腳的序號不同將眾多中斷觸發源分成不同的組,比如:PA0PB0PC0PD0PE0PF0PG0為第一組,那麼依此類推,我們能得出一共有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 外部中斷 出錯總結

前言:這些問題都是我之前在工作中遇到的,後來覺得需要總結,自己記憶不好,所以在這個給自己打個mark。 一:觸發方式 STM32 的外部中斷是通過邊沿來觸發的,不支援電平觸發; 二:外部中斷分組 STM32 的每一個GPIO都能配置成一個外部中斷觸發源,STM32 

stm32 外部中斷的使用(含例項)

中斷對於開發嵌入式系統來講的地位絕對是毋庸置疑的,在C51微控制器時代,一共只有5箇中斷,其中2個外部中斷,2個定時/計數器中斷和一個串列埠中斷,但是在STM32中,中斷數量大大增加,而且中斷的設定也更加複雜。今天就將來探討一下關於STM32中的中斷系統。 1基本概念

STM32外部中斷配置步驟

1.使能SYSCFG時鐘 系統配置時鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE) 2.初始化IO口為輸入 GPIO_INIT 3

stm32外部中斷實驗

// 上一篇是關於串列埠通訊的,用到GPIO的複用,將GPIO複用為usart串列埠; // 此處是利用按鍵進行中斷處理,這裡配置GPIO模式為輸入,因為要接收按鍵的狀態; //GPIO埠有很多,ABCD....但是中斷只有22個,其中0~15箇中斷中斷線與IO埠一一對應,

第十三章:STM32-外部中斷學習

中斷分類 STM32的EXTI控制器支援19 個外部中斷/ 事件請求。每個中斷設有狀態位,每個中斷/ 事件都有獨立的觸發和遮蔽設定。STM32的19個外部中斷對應著19路中斷線,分別是EXTI_Line0-EXTI_Line18:線0~15:對應外部 IO口的輸入中斷。線16

STM32-(SysTick定時器,EXTI外部中斷/事件控制器)

Systick系統定時器 介紹:systick定時器上屬於CM3核心中的一個外設,內嵌在NVIC中。系統定時器是一個24位向下計數的計數器,計數器每一次計數的時間是1/SYSTICK,一般我們設定SYSTICK為72M。當過載數值暫存器的值遞減到0時,系統定時器產生一次中斷,以此迴圈。

stm32紅外遙控的外部中斷實現

花了整整兩天時間終於算是基本把紅外解碼搞明白了,其實並不是很難,用了兩天時間,說來慚愧啊,原因就是細節上的問題,不過最終總算找出問題來了。使用外部中斷來解碼,就先對外部中斷進行配置吧 void exti_init() {  RCC->APB2ENR|=1<

8.STM32之EXIT外部中斷

每個IO口都可以作為一個外部中斷輸入,但只有7條外部中斷線。 流程: 1.時鐘使能 2.GPIO配置 3.IO口和中斷線的對映 4.NVIC設定,使能 5.中斷服務函式的處理 6.進入中斷後即可清除中斷標誌位 #include <exti_con.h&g

STM32庫函式詳解----(外部中斷/事件控制器 EXTI)

1.void EXTI_DeInit  (void) 函式解釋:將EXTI外設暫存器重置為默註釋。RCC_APB2PeriphResetCmd引數中沒有EXTI外設的的巨集,該外設重置採取的是直接向暫存器賦預設值的操作。 例子:EXTI_DeInit ( );  

stm32按鍵外部中斷,如何消抖

討論一下stm32下按鍵外部中斷如何進行有效的消抖 工程的程式碼是直接使用stm32 cubeMX進行配置生成的,下面就一起討論吧。 1. 在中斷處理服務函式中註釋清除中斷標誌的語句,防止按鍵抖動而不斷的進入中斷服務程式中 2. 進入回撥函式後先進性延時,一般為

STM32(暫存器)學習筆記——實驗五:外部中斷

儲備知識: (1)STM32F103ZET6(CM3核心)共有256箇中斷,需要進行管理 首先,要對STM32進行分組,組0~4,同時要對每個中斷設定一個搶佔優先順序和響應優先順序 (搶佔優先順序:是指打斷其它中斷的級別,高的搶佔優先順序可以打斷低的搶佔優先順序的工作

STM32開發記錄一: 外部中斷之軟中斷SWI使用

一、SWI使用        1、學習FreeRTOS過程中需要軟體產生一箇中斷,stm32提供了很好的方法。直接呼叫EXTI_GenerateSWInterrupt()即可。 二、具體參考如下:        1、exti配置,假定用EXTI_Line2  (EXTI

stm32中斷學習篇(2)——以外部中斷為例與多箇中斷的使用

上一篇簡單寫了一下中斷的理論,給了一個定時器的例子。 這一篇主要寫一下外部中斷的例子。這個例子中使用了兩個外部中斷,使用多個的話道理差不多。 還是對照著理論把程式寫出來。 配置GPIO的部分就不說了。程式在後面給出,有詳細註釋。 直接開始說配置NVIC和

STM32學習之路-按鍵中斷測試(外部中斷)

終於有時間再來學習STM32了~ 這幾天都在忙著該死的考試.直接進入正題 開發板:奮鬥V5 這個按鍵中斷測試的要求是:按鍵2(K2)按下,LED2(V7)亮, 再一次按下就滅,迴圈.. 好,先看看按鍵和LED的原理圖   好吧~ 雖然圖截得不是很好看,但是能看到K2接的是

STM32學習之路-外部中斷(1)

這裡要記錄的有點太多了,有點頭昏腦脹....先來看看吧 所有的GPIO口都有外部中斷的能力,為了使用外部中斷線,埠必須設定成輸入模式. 輸入模式有三種:上拉、下拉、浮空 請看圖: 上拉輸入模式:區別在於沒有輸入訊號的時候預設輸入高電平 下拉輸入模式:區別在於沒有輸入訊號

STM32 I/O 作為外部中斷輸入

 I/O口作為外部中斷。general  purpose input and outputSTM32 的每個 IO口都可以作為中斷輸入,要把 IO口作為外部中斷輸入,有以下幾個步驟:1) 初始化 IO 口為輸入。這一步設定你要作為外部中斷輸入的 IO 口的狀態,可以設定為上拉

STM32 外部GPIO中斷配置

源起:專案中需要使用統一的時間觸發訊號使得采樣時間同步,因此需要某一個管腳來進行觸發。 硬體情況:採用PA11管腳 需要明確的是,PxN管腳共用外部中斷線EXTIN和外部中斷向量EXTIN_IRQn和中斷服務程式入口EXTIN_IRQHandler,但是需要注意的是[

STM32學習之:外部中斷

一、STM32中斷分組:  STM32 的每一個GPIO都能配置成一個外部中斷觸發源,這點也是 STM32 的強大之處。STM32 通過根據引腳的序號不同將眾多中斷觸發源分成不同的組,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0為第一組,那麼依此類推,我們能得出一共有16 組,STM32 規定

關於STM32的幾種輸入模式以及外部中斷的配置

最近做畢業設計,需要用按鍵來觸發外部中斷。實驗的時候是正常的,但是換了個核心板以及用上自己做的PCB電路板後,出現了一些問題。問題如下: 要求:將連線按鍵的IO口配置為上拉輸入,按鍵一端接IO口,一端接地,即當按鍵按下後,該IO口會產生一個下降沿,觸發下降沿中斷。 問題:將

微控制器入門學習十一 STM32微控制器學習八 外部中斷

1、概述 STM32的每個IO都可以作為外部中斷輸入。 STM32的中斷控制器支援19個外部中斷/事件請求: 線0~15:對應外部IO口的輸入中斷。 線16:連線到PVD輸出。 線17:連線到RTC鬧鐘事件。 線18:連線到USB喚醒事件。 1