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

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

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

如何配置GPIO為中斷功能呢?

工程師鄧生 ? 來(lái)源:未知 ? 作者:劉芹 ? 2023-10-30 09:57 ? 次閱讀

如何配置GPIO為中斷功能呢?

GPIO在嵌入式系統(tǒng)中經(jīng)常用于控制外設(shè),如LED、攝像頭、傳感器等。除此之外,GPIO還可以被配置為中斷功能,用于檢測(cè)輸入信號(hào)的變化,從而觸發(fā)中斷服務(wù)程序。本文將介紹如何在嵌入式系統(tǒng)中配置GPIO為中斷功能。

一、GPIO基礎(chǔ)

GPIO是General Purpose Input/Output的縮寫(xiě),中文意為通用輸入輸出口。簡(jiǎn)單來(lái)說(shuō),GPIO是一組可編程的通用I/O端口,可以設(shè)置為輸入模式或輸出模式,用于連接嵌入式系統(tǒng)的外部設(shè)備、傳感器或其他模塊。

頭文件:#include "gpio.h"

二、GPIO配置

初始化GPIO之前,需設(shè)置GPIO的工作模式,即按照需要設(shè)置GPIO的輸入輸出方向。常見(jiàn)的模式有三種:

1.輸入模式

輸入模式下,GPIO端口會(huì)作為外部信號(hào)的輸入口,用于檢測(cè)外設(shè)給出的信號(hào)。

gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_0);//PA0輸入,無(wú)上下拉,外設(shè)接高低電平

2.輸出模式

輸出模式下,GPIO端口會(huì)作為外部信號(hào)的輸出口,用于控制外設(shè)等。

gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT_PP, GPIO_PUPD_NONE, GPIO_PIN_0);//PA0輸出,無(wú)上下拉,外設(shè)接高低電平

3.復(fù)用模式

復(fù)用模式下,GPIO端口既可以作為輸入,也可以作為輸出,通常用于與特定功能模塊協(xié)同工作,如UART、SPI和I2C等。

gpio_mode_set(GPIOA, GPIO_MODE_AF_PP, GPIO_PUPD_NONE, GPIO_PIN_0);//PA0復(fù)用模式,無(wú)上下拉,外設(shè)接高低電平

三、中斷配置

配置GPIO中斷需要三個(gè)步驟:

1.使能GPIO外部中斷

gpio_exti_source_select(GPIO_PortSourceGPIOC, GPIO_PinSource0);//GPIOC0觸發(fā)外部中斷

2.使能中斷線(xiàn)

nvic_irq_enable(EXTI0_IRQn, LL_PRIORITY_DEFAULT, EXTI0_IRQ_HANDLER);//使能中斷,EXTI0_IRQ_HANDLER為中斷處理函數(shù)名

3.設(shè)置中斷觸發(fā)方式

EXTI_TriggerTypeDef trigger;
trigger = EXTI_Trigger_Falling; //設(shè)置中斷觸發(fā)方式為下降沿觸發(fā)
exti_init(EXTI_Line0, trigger, LL_EXTI_PULL_NONE);//設(shè)置GPIOC0觸發(fā)的中斷線(xiàn),LL_EXTI_PULL_NONE不開(kāi)啟上下拉

中斷服務(wù)程序:

void EXTI0_IRQHandler(void)
{
if (exti_get_flag_status(EXTI_Line0)) //判斷中斷線(xiàn)0是否被觸發(fā)
{
//執(zhí)行中斷服務(wù)程序
exti_clear_flag(EXTI_Line0); //清除中斷標(biāo)志位
}
}

這樣,就可以使用GPIO對(duì)外設(shè)進(jìn)行中斷檢測(cè)并執(zhí)行相應(yīng)的服務(wù)程序了。

總結(jié)

GPIO作為嵌入式系統(tǒng)中常用的外設(shè)接口,可以配置為輸入輸出端口,也可與其他模塊協(xié)同工作。配置GPIO為中斷功能,可以實(shí)現(xiàn)對(duì)外部信號(hào)的檢測(cè)和響應(yīng),擴(kuò)展系統(tǒng)功能。以上就是配置GPIO為中斷功能的相關(guān)操作步驟,希望對(duì)大家有所幫助。

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

    關(guān)注

    40

    文章

    3520

    瀏覽量

    128805
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1175

    瀏覽量

    51513
  • 觸發(fā)中斷
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    6546
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    BLE開(kāi)啟后,GPIO39如果配置輸入并且開(kāi)啟中斷中斷會(huì)被一直觸發(fā)怎么解決?

    問(wèn)題:BLE開(kāi)啟后,GPIO39如果配置輸入并且開(kāi)啟中斷,中斷會(huì)被一直觸發(fā),有知道怎么解決的嗎? 背景: IDF版本: ESP-IDF
    發(fā)表于 06-17 07:37

    為什么可以將一個(gè)GPIO引腳同時(shí)配置輸入輸出模式?

    GPIO_MODE_INPUT_OUTPUT參數(shù),即可將引腳配置輸入輸出模式。 問(wèn)題來(lái)了:1.為什么可以將一個(gè)GPIO引腳同時(shí)配置
    發(fā)表于 06-05 07:37

    STM32中斷分組及外部中斷配置過(guò)程分享

    STM32中斷分組   STM32 的每一個(gè)GPIO都能配置成一個(gè)外部中斷觸發(fā)源,這點(diǎn)也是 STM32 的強(qiáng)大之處。STM32 通過(guò)根據(jù)引腳的序號(hào)不同將眾多
    發(fā)表于 04-08 08:05

    GD32 MCU如何將燒錄口配置GPIO使用?

    如果大家在進(jìn)行GD32 MCU開(kāi)發(fā)時(shí)發(fā)現(xiàn)GPIO引腳使用不足,可以嘗試將燒錄口配置GPIO使用,這樣就可以多出幾個(gè)引腳使用,但使用的時(shí)候如何配置
    的頭像 發(fā)表于 02-20 10:18 ?1547次閱讀
    GD32 MCU如何將燒錄口<b class='flag-5'>配置</b><b class='flag-5'>為</b><b class='flag-5'>GPIO</b>使用?

    PSOC6 GPIO無(wú)法觸發(fā)中斷的原因?怎么解決?

    ),但是gpio管腳的中斷處理函數(shù)卻未觸發(fā)。 GPIO配置如下: 中斷服務(wù)程序以及初始化代碼如下: static void Charge
    發(fā)表于 02-02 08:01

    tc387是否可以將配置外部中斷的引腳讀取標(biāo)準(zhǔn)輸入gpio

    是否可以將配置外部中斷的引腳讀取標(biāo)準(zhǔn)輸入 gpio? 例如: 如果我配置 ifx scu_r
    發(fā)表于 01-26 07:55

    T507開(kāi)發(fā)板如何將占用引腳配置普通GPIO

    根據(jù)T5用戶(hù)手冊(cè)描述,只有在不使用多路復(fù)用功能的情況下,這些端口才可以配置GPIO,所以我們需要把引腳的復(fù)用功能關(guān)閉。將被占用引腳
    的頭像 發(fā)表于 12-08 11:50 ?497次閱讀
    T507開(kāi)發(fā)板如何將占用引腳<b class='flag-5'>配置</b><b class='flag-5'>為</b>普通<b class='flag-5'>GPIO</b>

    單片機(jī)的GPIO如何實(shí)現(xiàn)觸摸按鍵的功能?

    單片機(jī)的GPIO如何實(shí)現(xiàn)觸摸按鍵的功能? 觸摸按鍵是一種使用觸摸電容技術(shù)實(shí)現(xiàn)的按鍵,它通過(guò)利用人體的電容來(lái)實(shí)現(xiàn)按鍵的檢測(cè)和觸發(fā)。在單片機(jī)中實(shí)現(xiàn)觸摸按鍵功能需要使用特定的引腳和軟件算法
    的頭像 發(fā)表于 12-07 11:43 ?3217次閱讀

    ADPD105用示波器測(cè)量,GPIO0沒(méi)有中斷信號(hào)輸出是為什么?

    GPIO0提供中斷功能) 但是用示波器測(cè)量,GPIO0沒(méi)有中斷信號(hào)輸出。請(qǐng)幫忙確認(rèn)一下,我的配置
    發(fā)表于 12-05 07:53

    如何通過(guò)配置串口的接收作為中斷

    使用中斷 通過(guò)配置串口的接收作為中斷源,開(kāi)啟中斷輸出控制,配置NVIC。開(kāi)啟中斷通道。 //開(kāi)啟
    的頭像 發(fā)表于 11-10 16:33 ?445次閱讀
    如何通過(guò)<b class='flag-5'>配置</b>串口的接收作為<b class='flag-5'>中斷</b>源

    方法|基于T507開(kāi)發(fā)板講如何將占用引腳配置普通GPIO

    方法|基于T507開(kāi)發(fā)板講如何將占用引腳配置普通GPIO
    的頭像 發(fā)表于 11-09 13:59 ?501次閱讀
    方法|基于T507開(kāi)發(fā)板講如何將占用引腳<b class='flag-5'>配置</b><b class='flag-5'>為</b>普通<b class='flag-5'>GPIO</b>

    STM32基于標(biāo)準(zhǔn)外設(shè)庫(kù)的外部中斷配置

    本文介紹了STM32基于標(biāo)準(zhǔn)外設(shè)庫(kù)的外部中斷配置,以及基于參考手冊(cè)如何更加寄存器配置外部中斷
    的頭像 發(fā)表于 11-02 14:13 ?1428次閱讀
    STM32基于標(biāo)準(zhǔn)外設(shè)庫(kù)的外部<b class='flag-5'>中斷</b><b class='flag-5'>配置</b>

    STM32如何配置外部中斷?STM32外部中斷配置步驟

    STM32如何配置外部中斷?STM32外部中斷配置步驟? 作為一款現(xiàn)代化的微控制器,STM32系列芯片在各種應(yīng)用場(chǎng)合中廣泛應(yīng)用。其中最常見(jiàn)的應(yīng)用是外部
    的頭像 發(fā)表于 10-26 17:47 ?3028次閱讀

    STM32使用GPIO配置的5種方式

    采用五種不同的方式,具體如下: 一、使用直接寄存器訪(fǎng)問(wèn) 這種方式是最原始的GPIO訪(fǎng)問(wèn)方式,直接訪(fǎng)問(wèn)GPIO的控制寄存器來(lái)配置相應(yīng)的復(fù)用功能,以實(shí)現(xiàn)對(duì)
    的頭像 發(fā)表于 10-26 17:42 ?1232次閱讀

    如何配置GPIO中斷功能

    拉,1:上拉,2:下拉? <drv_level>:驅(qū)動(dòng)能力(上下拉力度),可取值 0~3,越高驅(qū)動(dòng)能越高。? :io 的初始值 如果把引腳配置中斷功能,一般在上寫(xiě)上6。另
    發(fā)表于 10-26 17:38