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;,因為軟體中斷先於邊沿中斷處理。
相關推薦
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