1. 程式人生 > >STM32 外部GPIO中斷配置

STM32 外部GPIO中斷配置

源起:專案中需要使用統一的時間觸發訊號使得采樣時間同步,因此需要某一個管腳來進行觸發。

硬體情況:採用PA11管腳

需要明確的是,PxN管腳共用外部中斷線EXTIN和外部中斷向量EXTIN_IRQn和中斷服務程式入口EXTIN_IRQHandler,但是需要注意的是[9...5]共用EXTI9_5_IRQn和EXTI9_5_IRQHandler、[15...10]共用EXTI15_10_IRQn和EXTI15_10_IRQHandler

基本過程:

1、設定時鐘

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);

 注意需要開啟AFIO時鐘

2、配置GPIO

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);

採用模擬輸入方式

3、將GPIO管腳與外部中斷線連線

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource11);

  相當重要

4、配置EXTI

EXTI_InitStructure.EXTI_Line = EXTI_Line11;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);

包括觸發方式等等

6、配置NVIC

NVIC_InitTypeDef NVIC_InitStructure;   
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; //PPP外部中斷線 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);

7、寫中斷服務程式

void EXTI15_10_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line11) != RESET) { EXTI_ClearITPendingBit(EXTI_Line11); //清除標誌 ... } }

另外,簡單的濾波方法可以在主邏輯中實現

相關推薦

STM32 外部GPIO中斷配置

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

STM32外部中斷配置步驟

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

ARM中斷機制 --外部中斷配置

很多情況下,要實現一個嵌入式程式,用到某一功能或者某一個硬體資源時,我經常拿廠家或者是其他人給提供的程式碼,參考其中的配置程式碼段部分,只去修改實現成我需要的功能就好。相信大家也和我有相似的經歷吧!?從工程的角度來說,這沒問題。但是理論上總感覺少了點什麼,今天以外部中斷的暫存器配置為例,進一

外部中斷配置

1.明確要使哪個埠作為觸發。(以PA0為例)    因為是PA0,所以應當開啟外部中斷線0. 程式碼如下:    EXTI->IMR |= 1 << 0;  //開啟外部中斷線0 2.設定觸

F28335外部中斷配置過程(完整) 原始碼+註釋

對外部中斷1完整的配置一次,以供參考 函式的功能是, 在外部訊號持續輸入的情況下,且下降沿觸發外部中斷。 每隔一段時間,GPIO0和GPIO1的LED等閃爍。 在一段時間後,系統停止,LED燈停止閃爍。 #include "DSP2833x_Device.h" #include "D

STM32外部配置

USART作為一種標準介面在應用中十分常見。本文著重分析其作為UART的配置和應用方法。 1、STM32韌體庫使用外圍裝置的主要思路 在STM32中,外圍裝置的配置思路比較固定。首先是使能相關的時鐘,一方面是裝置本身的時鐘,另一方面如果裝置通過IO口輸出還需要使能IO口的時鐘;最後如果對應的

STM32 外部中斷 易出錯總結

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

【STM32CubeMX】1,STM32GPIO埠輸入模式配置

主要參考這兩篇文章https://blog.csdn.net/flaming999/article/details/52487904https://blog.csdn.net/kevinhg/article/details/174902732、推輓輸出與開漏輸出的區別推輓輸出

STM32 (3) GPIO口功能講解 GPIO 口輸入輸出 暫存器配置 群號860099671

講解GPIO操作原理,使用各種型號的STM32  開啟官方的《STM32中文參考手冊》8.1  8.2小節  GPIO功能描述  我們今天重點要分析的是下圖 上圖是100腳的STM32微控制器  1.  GPIO是包含引腳的 2. 如何找GPIO功能:

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

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

STM32GPIO的8種配置模式

STM32晶片的GPIO一共有8種配置模式,對8種模式的理解如下 1.四種輸入模式 上拉輸入:在預設狀態下,讀取的GPIO引腳為高電平 下拉輸入:在預設狀態下,讀取的GPIO引腳為低電平 浮空輸入:配置成這種模式時,電壓表測量引腳電壓為1點幾伏,為不確定值,因為其阻抗較大,

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-定時器中斷

cmd open 兩個 typedef clock 數據手冊 濾波 重裝 fin 由於現在是在學用庫函數操作,我的目標是知道用到的每個函數的作用,需要的時候可以加以更改使用,所以關鍵是要怎麽知道stm32各函數的作用 雖然從名字上也能知道個大概,但是細節還是要查stm3

Java配置方式讀取外部的資源配置文件

eba hsi ptp vlt uwp img dbm woe fsp 通過@PropertySource可以指定讀取的配置文件,通過@Value註解獲取值,具體用法: package cn.qlq; import org.springframework.con

Openstack 之 kolla部署外部網絡配置

kolla external interface 外部網絡 如果想實現在外部網絡也能管理openstack各個物理節點以及dashboard,需要做相應的配置才能實現。首先,在globals.yml配置文件中配置以下的參數:kolla_internal_vip_address: "192

STM32空閑中斷+DMA解決接收不定長數據問題

sdl 接收 bbb gfs href dtb dsl target lwp d3蛹追儇j9司盟乓fb斬蔔範http://sjjcjdblt.wikidot.com/go檬譖棺o0節紗稚22南勸枚http://zszztb.wikidot.com/ft劣拭撾vp酪慚壬xa段

嵌入式 入門篇 - 第5章 STM32新建工程及配置

為什麽 .net .cn 預編譯 點擊 自定義 new 文件拷貝 。。 5.1 新建文件 5.1.1 新建文件夾 在 STM32-Template 文件夾下,我們新建四個文件夾,分別為DIF、Doc、Listing、Output、User。其中DIF中包含兩個文件夾CMSI

如何做到在webpack打包vue項目後,在外部動態修改配置文件

打包 測試 contex 我們 pro nbsp assets bpa gen 在我們做完vue項目後,只需要執行 npm run dist 就可以輕松進行打包轉測試,可是如果我們臨時需要修改一些配置文件比如域名,這時候我們就有點懵逼了,那就修改了再重新打一次包? NO N

關於stm32GPIO的操作

  首先先了解一下輸出的模式 比較常用的是 推輓輸出 1)GPIO_Mode_AIN 模擬輸入  (2)GPIO_Mode_IN_FLOATING 浮空輸入 ​(3)GPIO_Mode_IPD 下拉輸入 (4)GPIO_Mod