<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32外部中斷易出錯總結

          STM32外部中斷易出錯總結

          作者: 時間:2016-11-26 來源:網(wǎng)絡 收藏
          前言:這些問題都是我之前在工作中遇到的,后來覺得需要總結,自己記憶不好,所以在這個給自己打個mark。

          一:觸發(fā)方式

          本文引用地址:http://www.ex-cimer.com/article/201611/321888.htm

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

          二:外部中斷分組

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

          STM32分組和對應中斷處理函數(shù)分配:

          管腳

          中斷標志

          中斷處理函數(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

          三:外部中斷的配置過程

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

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

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

          2.GPIO_Mode_IN_FLOATING,浮空輸入

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

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

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

          l外部中斷AFIO時鐘開啟

          l外部中斷配置

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

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

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

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

          結合我工作中的遇到的問題可以分為:

          1)GPIO或者AFIO的時鐘沒有開啟;

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

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

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

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

          6)沒有用軟件中斷來觸發(fā)外部中斷,調(diào)用函數(shù)EXTI_GenerateSWInterrupt;,因為軟件中斷先于邊沿中斷處理。

          我的問題出現(xiàn)在沒有啟動AFIO時鐘信號;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);導致總也進不了中斷



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();