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,STM32之GPIO埠輸入模式配置
主要參考這兩篇文章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基本概念
STM32之GPIO的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
關於stm32的GPIO的操作
首先先了解一下輸出的模式 比較常用的是 推輓輸出 1)GPIO_Mode_AIN 模擬輸入 (2)GPIO_Mode_IN_FLOATING 浮空輸入 (3)GPIO_Mode_IPD 下拉輸入 (4)GPIO_Mod