0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

stm32f1如何將外部中斷關(guān)掉hal庫

科技綠洲 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-12-22 13:52 ? 次閱讀

STM32F1系列微控制器是STMicroelectronics制造的32位ARM Cortex-M3內(nèi)核的嵌入式微控制器系列。該系列采用了HAL庫(Hardware Abstraction Layer)來簡化芯片和外設(shè)的驅(qū)動開發(fā)。在STM32F1中,外部中斷的關(guān)閉是通過HAL庫中的相應(yīng)函數(shù)來實(shí)現(xiàn)的。下面我將詳細(xì)介紹如何使用HAL庫關(guān)閉外部中斷。

  1. 引入必要的頭文件
    要使用外部中斷功能,首先需要引入相關(guān)的頭文件。在HAL庫中,與外部中斷相關(guān)的頭文件是stm32f1xx_hal_exti.h和stm32f1xx_hal_gpio.h。這兩個頭文件提供了對外部中斷和GPIO的定義和函數(shù)實(shí)現(xiàn)。
  2. 配置外部中斷引腳
    外部中斷通常與GPIO引腳配合使用。在HAL庫中,首先需要通過GPIO_InitTypeDef結(jié)構(gòu)體定義和配置相關(guān)的GPIO引腳。GPIO_InitTypeDef結(jié)構(gòu)體中包含了引腳的模式、速度、上拉/下拉等信息。例如,如果需要關(guān)閉外部中斷的引腳是PA0引腳,可以通過以下代碼進(jìn)行配置:
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);
  1. 配置外部中斷線路
    在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);
  1. 外部中斷處理函數(shù)
    在配置完外部中斷后,可以編寫相應(yīng)的中斷處理函數(shù)。在HAL庫中,中斷處理函數(shù)的命名格式為void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)。該函數(shù)會在外部中斷觸發(fā)時自動被調(diào)用。在函數(shù)內(nèi)部,可以執(zhí)行相應(yīng)的中斷處理操作。以下是一個示例代碼,將PA0引腳的中斷處理函數(shù)置空:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_0)
{
// Do nothing
}
}
  1. 關(guān)閉外部中斷
    最后,可以通過HAL庫提供的函數(shù)來關(guān)閉外部中斷。在HAL庫中,外部中斷通過中斷線路和標(biāo)志來管理。以下是一個示例代碼,關(guān)閉外部中斷0并清除相關(guān)的中斷標(biāo)志:
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)閉外部中斷和清除中斷標(biāo)志,可以實(shí)現(xiàn)對外部中斷的控制。

綜上所述,本文詳細(xì)介紹了如何使用HAL庫關(guān)閉STM32F1系列微控制器的外部中斷。通過引入必要的頭文件、配置外部中斷引腳和線路、編寫中斷處理函數(shù),以及通過HAL庫提供的函數(shù)來關(guān)閉外部中斷和清除中斷標(biāo)志,可以實(shí)現(xiàn)對外部中斷的控制。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7391

    瀏覽量

    150622
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18905

    瀏覽量

    300697
  • stm32f1
    +關(guān)注

    關(guān)注

    1

    文章

    56

    瀏覽量

    12148
  • HAL庫
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

    6110
收藏 人收藏

    評論

    相關(guān)推薦

    基于HALSTM32f429外部中斷配置解析

    STM32f429外部中斷配置解析基于HAL
    發(fā)表于 08-16 09:31

    求大佬分享STM32F1 HAL串口接收中斷函數(shù)

    求大佬分享STM32F1 HAL中斷中斷函數(shù)
    發(fā)表于 12-07 06:12

    STM32F1外部中斷簡介

    文章目錄前言一、 STM32F1 外部中斷簡介二、使用步驟1.引入庫2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄的大概內(nèi)容:例如:隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重
    發(fā)表于 12-09 07:26

    STM32F1系列的HAL手冊免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F1系列單片機(jī)的HAL手冊免費(fèi)下載。
    發(fā)表于 11-19 14:36 ?469次下載
    <b class='flag-5'>STM32F1</b>系列的<b class='flag-5'>HAL</b><b class='flag-5'>庫</b>手冊免費(fèi)下載

    STM32F1的固件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F1的固件免費(fèi)下載。
    發(fā)表于 12-26 17:22 ?156次下載
    <b class='flag-5'>STM32F1</b>的固件<b class='flag-5'>庫</b>免費(fèi)下載

    STM32F1開發(fā)指南(V1.0 -HAL 版)

    STM32F1開發(fā)指南(V1.0 -HAL 版)
    發(fā)表于 09-28 09:25 ?0次下載

    STM32f10x 外部中斷中斷分組

    利用外部中斷來實(shí)現(xiàn)按鍵控制LED燈的亮滅。實(shí)驗(yàn)工具:MDK5,STM32F103ZET6開發(fā)板使用固件編程LED燈引腳PD13,按鍵PE0首先了解一下32的
    發(fā)表于 11-23 18:06 ?4次下載
    <b class='flag-5'>STM32f</b>10x <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>及<b class='flag-5'>中斷</b>分組

    STM32公用中斷源時的中斷分配

    _GPIO_EXTI_GET_IT()函數(shù)來分辨中斷請求,并請中斷和回調(diào)函數(shù),無需使用系統(tǒng)的中斷函數(shù)HAL_GPIO_EXTI_IRQHandler();
    發(fā)表于 11-24 16:51 ?4次下載
    <b class='flag-5'>STM32</b>公用<b class='flag-5'>中斷</b>源時的<b class='flag-5'>中斷</b>分配

    清泉HAL開發(fā)STM32之EXIT

    文章目錄前言一、 STM32F1 外部中斷簡介二、使用步驟1.引入庫2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄的大概內(nèi)容:例如:隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重
    發(fā)表于 11-26 12:51 ?4次下載
    清泉<b class='flag-5'>HAL</b><b class='flag-5'>庫</b>開發(fā)<b class='flag-5'>STM32</b>之EXIT

    STM32F0x HAL學(xué)習(xí)筆記(8)外部中斷的配置

    本文開發(fā)環(huán)境:MCU型號:STM32F051R8T6IDE環(huán)境: MDK 5.25代碼生成工具:STM32CubeMx 5.2.0HAL版本:v1.9.0(
    發(fā)表于 12-06 11:36 ?14次下載
    <b class='flag-5'>STM32F</b>0x <b class='flag-5'>HAL</b><b class='flag-5'>庫</b>學(xué)習(xí)筆記(8)<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>的配置

    STM32F1系列HAL配置系統(tǒng)時鐘

    STM32F1系列HAL配置系統(tǒng)時鐘其實(shí)一開始對于時鐘我也是知之甚少,在MSP432中我就一直忽視時鐘配置,其實(shí)也是在STM32學(xué)習(xí)時落下的病根,現(xiàn)在趁有空補(bǔ)一下。時鐘簡單講解對于時
    發(fā)表于 12-16 16:57 ?2次下載
    <b class='flag-5'>STM32F1</b>系列<b class='flag-5'>HAL</b><b class='flag-5'>庫</b>配置系統(tǒng)時鐘

    STM32f429外部中斷配置解析基于HAL

    STM32f429外部中斷配置解析基于HAL
    發(fā)表于 12-16 16:58 ?9次下載
    <b class='flag-5'>STM32f</b>429<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>配置解析基于<b class='flag-5'>HAL</b><b class='flag-5'>庫</b>

    STM32F1系列使用HAL低功耗STOP和STANDBY模式喚醒(RTC時鐘喚醒+外部中斷喚醒示例)

    STM32F1系列使用HALRTC時鐘喚醒低功耗STOP和STANDBY模式目錄STM32F1系列使用HAL
    發(fā)表于 12-31 19:09 ?65次下載
    <b class='flag-5'>STM32F1</b>系列使用<b class='flag-5'>HAL</b><b class='flag-5'>庫</b>低功耗STOP和STANDBY模式喚醒(RTC時鐘喚醒+<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>喚醒示例)

    STM32 HAL CubeMX教程(四)按鍵外部中斷

    STM32 HAL CubeMX教程(四)外部中斷實(shí)驗(yàn)內(nèi)容NVIC(嵌套向量中斷控制器)
    發(fā)表于 01-14 15:11 ?10次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>HAL</b><b class='flag-5'>庫</b> CubeMX教程(四)按鍵<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    UM1847_基于STM32F1系列的STM32CubeF1軟件使用入門

    UM1847_基于STM32F1系列的STM32CubeF1軟件使用入門
    發(fā)表于 11-22 08:22 ?4次下載
    UM1847_基于<b class='flag-5'>STM32F1</b>系列的<b class='flag-5'>STM32CubeF1</b>軟件<b class='flag-5'>庫</b>使用入門