STM32F1系列微控制器是STMicroelectronics制造的32位ARM Cortex-M3內(nèi)核的嵌入式微控制器系列。該系列采用了HAL庫(Hardware Abstraction Layer)來簡化芯片和外設的驅(qū)動開發(fā)。在STM32F1中,外部中斷的關(guān)閉是通過HAL庫中的相應函數(shù)來實現(xiàn)的。下面我將詳細介紹如何使用HAL庫關(guān)閉外部中斷。
- 引入必要的頭文件
要使用外部中斷功能,首先需要引入相關(guān)的頭文件。在HAL庫中,與外部中斷相關(guān)的頭文件是stm32f1xx_hal_exti.h和stm32f1xx_hal_gpio.h。這兩個頭文件提供了對外部中斷和GPIO的定義和函數(shù)實現(xiàn)。 - 配置外部中斷引腳
外部中斷通常與GPIO引腳配合使用。在HAL庫中,首先需要通過GPIO_InitTypeDef結(jié)構(gòu)體定義和配置相關(guān)的GPIO引腳。GPIO_InitTypeDef結(jié)構(gòu)體中包含了引腳的模式、速度、上拉/下拉等信息。例如,如果需要關(guān)閉外部中斷的引腳是PA0引腳,可以通過以下代碼進行配置:
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- 配置外部中斷線路
在HAL庫中,外部中斷由中斷線路和中斷通道來管理。通過配置中斷線路,可以將外部中斷與GPIO引腳相連。通過配置中斷通道,可以指定外部中斷的觸發(fā)方式和優(yōu)先級。以下是一個示例代碼,將PA0引腳與外部中斷線路0關(guān)聯(lián),并配置為上升沿觸發(fā):
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
- 外部中斷處理函數(shù)
在配置完外部中斷后,可以編寫相應的中斷處理函數(shù)。在HAL庫中,中斷處理函數(shù)的命名格式為void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)。該函數(shù)會在外部中斷觸發(fā)時自動被調(diào)用。在函數(shù)內(nèi)部,可以執(zhí)行相應的中斷處理操作。以下是一個示例代碼,將PA0引腳的中斷處理函數(shù)置空:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_0)
{
// Do nothing
}
}
- 關(guān)閉外部中斷
最后,可以通過HAL庫提供的函數(shù)來關(guān)閉外部中斷。在HAL庫中,外部中斷通過中斷線路和標志來管理。以下是一個示例代碼,關(guān)閉外部中斷0并清除相關(guān)的中斷標志:
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0);
HAL_NVIC_DisableIRQ(EXTI0_IRQn);
__HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_0);
通過以上步驟,可以使用HAL庫來關(guān)閉外部中斷。通過配置相關(guān)的GPIO引腳、中斷線路和中斷通道,編寫中斷處理函數(shù),以及使用HAL庫提供的函數(shù)來關(guān)閉外部中斷和清除中斷標志,可以實現(xiàn)對外部中斷的控制。
綜上所述,本文詳細介紹了如何使用HAL庫關(guān)閉STM32F1系列微控制器的外部中斷。通過引入必要的頭文件、配置外部中斷引腳和線路、編寫中斷處理函數(shù),以及通過HAL庫提供的函數(shù)來關(guān)閉外部中斷和清除中斷標志,可以實現(xiàn)對外部中斷的控制。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
微控制器
+關(guān)注
關(guān)注
49文章
8812瀏覽量
165541 -
嵌入式
+關(guān)注
關(guān)注
5208文章
20620瀏覽量
336642 -
stm32f1
+關(guān)注
關(guān)注
1文章
60瀏覽量
12974 -
HAL庫
+關(guān)注
關(guān)注
1文章
121瀏覽量
7731
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
STM32F1外部中斷簡介
文章目錄前言一、 STM32F1 外部中斷簡介二、使用步驟1.引入庫2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄的大概內(nèi)容:例如:隨著人工智能的不斷發(fā)展,機器學習這門技術(shù)也越來越重
發(fā)表于 12-09 07:26
STM32f10x 外部中斷及中斷分組
利用外部中斷來實現(xiàn)按鍵控制LED燈的亮滅。實驗工具:MDK5,STM32F103ZET6開發(fā)板使用固件庫編程LED燈引腳PD13,按鍵PE0首先了解一下32的
發(fā)表于 11-23 18:06
?4次下載
STM32公用中斷源時的中斷分配
_GPIO_EXTI_GET_IT()函數(shù)來分辨中斷請求,并請中斷和回調(diào)函數(shù),無需使用系統(tǒng)的中斷函數(shù)HAL_GPIO_EXTI_IRQHandler();
發(fā)表于 11-24 16:51
?4次下載
清泉HAL庫開發(fā)STM32之EXIT
文章目錄前言一、 STM32F1 外部中斷簡介二、使用步驟1.引入庫2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄的大概內(nèi)容:例如:隨著人工智能的不斷發(fā)展,機器學習這門技術(shù)也越來越重
發(fā)表于 11-26 12:51
?4次下載
STM32F0x HAL庫學習筆記(8)外部中斷的配置
本文開發(fā)環(huán)境:MCU型號:STM32F051R8T6IDE環(huán)境: MDK 5.25代碼生成工具:STM32CubeMx 5.2.0HAL庫版本:v1.9.0(
發(fā)表于 12-06 11:36
?14次下載
STM32F1系列HAL庫配置系統(tǒng)時鐘
STM32F1系列HAL庫配置系統(tǒng)時鐘其實一開始對于時鐘我也是知之甚少,在MSP432中我就一直忽視時鐘配置,其實也是在STM32學習時落下的病根,現(xiàn)在趁有空補一下。時鐘簡單講解對于時
發(fā)表于 12-16 16:57
?2次下載
STM32F1系列使用HAL庫低功耗STOP和STANDBY模式喚醒(RTC時鐘喚醒+外部中斷喚醒示例)
STM32F1系列使用HAL庫RTC時鐘喚醒低功耗STOP和STANDBY模式目錄STM32F1系列使用HAL
發(fā)表于 12-31 19:09
?74次下載
STM32 HAL庫 CubeMX教程(四)按鍵外部中斷
STM32 HAL庫 CubeMX教程(四)外部中斷實驗內(nèi)容NVIC(嵌套向量中斷控制器)
發(fā)表于 01-14 15:11
?10次下載
UM1847_基于STM32F1系列的STM32CubeF1軟件庫使用入門
UM1847_基于STM32F1系列的STM32CubeF1軟件庫使用入門
發(fā)表于 11-22 08:22
?4次下載
stm32f1如何將外部中斷關(guān)掉hal庫
評論