国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GPIO做輸出還能作外部中斷輸入嗎?

茶話MCU ? 來源:ST MCU 信息交流 ? 2020-07-05 10:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

偶爾會有人問起STM32芯片的GPIO做輸出時還是否可能作為外部中斷觸發輸入,這里一起聊聊該話題。

作為STM32芯片,其外部中斷觸發源可以是硬件模式或軟件模式。所謂軟件模式就是通過操作相關寄存器產生內部中斷觸發信號并向內核NVIC控制器申請中斷。硬件模式自然是指來自GPIO引腳的電平跳變信號經邊沿檢測器形成中斷觸發信號向內核申請中斷。【注:還有個別外設事件也可以作為外部中斷觸發源映射到外部中斷控制器。】

我們這里要談的是基于硬件模式的外部中斷話題。當STM32的GPIO作為輸出時,可能是通用GPIO輸出也可能是基于其它外設復用情況下的輸出,即復用輸出。

下圖是GPIO作為基本輸入輸出時的功能框圖。

下面是GPIO作為其它外設的復用輸出腳時的功能框圖。

不難看出,所謂GPIO復用輸出,就是將自身輸出數據寄存器與輸出控制電路及外部管腳斷開來,并將輸出控制電路及外部管腳借讓給其它外設使用。通俗點說,所謂GPIO復用輸出就是其它外設找GPIO借道而已。

從上面兩幅圖來看,不論GPIO通用輸出還是復用輸出,外部管腳的電平都可以連接到內部輸入單元,管腳上的電平也應該可以被內部邊沿檢測器檢測到。也就是說,即使GPIO作為輸出,只要管腳上的電平跳變能被邊沿檢測器識別,按理可以作為外部中斷觸發源。

下面不妨用個簡單的實例驗證下。

這里使用一塊STM32F4系列的開放板,通過定時器1的通道1輸出8個PWM信號,同時將該定時器輸出通道所用管腳PA8配置為上升沿觸發的外部中斷輸入。PC13接一個按鍵,每按鍵一次啟動定時器輸出8個脈沖。

我使用STM32CubeMx圖形化工具進行配置。因為要把PWM輸出腳同時配置為外部中斷輸入這里不好操作。我先借用旁邊的PA9進行配置,等生成初始化代碼后我再將PA9改成PA8以及對應的中斷矢量。TIM1配置在單脈沖模式,我在PC3按鍵中斷里啟動TIM1的計數器。

TIM1的基本配置如下:

再就是兩個GPIO端口PC13/PA9的EXTI配置,分別對應按鍵腳和PWM輸出腳。

時鐘、調試口等配置完畢后生成初始化代碼,然后在代碼里將之前基于PA9生成的代碼改為基于TIM1-CH1的輸出腳PA8的。

主程序功能代碼很簡單,就是配置TIM1-CH1的pwm輸出。

在用戶按鍵中斷程序里啟動TIM1的計數器。

在基于PWM輸出腳PA8對應的外部中斷程序里對中斷次數進行統計。因它被配置為上沿觸發,每次連續輸出8個脈沖的話,統計值應該為8。

下面看看代碼運行結果:

每按鍵一次輸出8個脈沖,沒有問題。

再看看基于這個8個輸出脈沖統計到中斷次數,也確實為8次。【如下圖所示]

顯然,當GPIO做為輸出時還是可以感受到外部管腳電平的變化情況,并可以做為外部中斷觸發源申請中斷。結合上面GPIO輸出模式下的功能框圖來看,當它被配置為輸出時是具備雙向特性的。當然,一般來講,如果希望GPIO做為雙向驅動口使用時,建議將其配置為OD開漏結合上拉模式。比方在做I2C應用時,將通信GPIO端口配置為開漏模式結合上拉電阻即可進行雙向數據通信,無須對通信口的GPIO模式來回切換。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5608

    瀏覽量

    129968
  • GPIO
    +關注

    關注

    16

    文章

    1328

    瀏覽量

    56219

原文標題:GPIO做輸出還能作外部中斷輸入嗎?

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CW32F030CxTx外部中斷

    這里使用的外部中斷函數宏定義板子上的LED和按鍵的引腳 #define LED_GPIO_PORT CW_GPIOB #define LED_GPIO_PINS
    發表于 01-29 07:37

    在CW32F030 MCU上設置外部中斷和RTC喚醒條件的示例

    \"http:// 假設這是MCU的頭文件 // 外部中斷處理函數 void EXTIx_IRQHandler(void) { if (__HAL_GPIO
    發表于 11-25 08:00

    GPIO輸出/輸入的故障排查

    1、確認時鐘已使能。 2、檢查 GPIO 模式設置是否正確(輸出:推挽/開漏? 輸入:浮空/上拉/下拉?)。 3、檢查復用功能映射(如果該 IO 用于外設如 UART TX)。 4、檢查外部
    發表于 11-18 07:37

    GPIO輸入輸出調用方法的理解與分享

    Nuclei Studio中為GPIO的調用定義了七個函數。 與GPIO輸入輸出的直接有關的是: GPIO_TypeDef *
    發表于 10-29 06:24

    AXI GPIO擴展e203 IO口簡介

    比特位。可以通過數據寄存器2(Data Register 2)來讀取GPIO引腳的輸入狀態,數據寄存器僅用于寫入GPIO引腳的輸出狀態。 3.GPI
    發表于 10-22 08:14

    中斷機制在計算機系統中的作用,如何在e203處理器中利用外部中斷來處理用戶輸入輸出

    )設計中,中斷是一種機制,用于處理外部事件并暫停CPU的正常執行流程。當外部事件發生時,如輸入/輸出操作或定時器/計數器到達其計數限制等,硬
    發表于 10-21 12:47

    瑞薩RA系列MCU的外部引腳中斷詳解

    上一章節我們已經詳細介紹了NVIC、ICU、ELC、NMI并對RA系列MCU的中斷管理系統有個全局的了解,我們這一章節的內容是如何控制外部中斷,也是內核里的NVIC的實例應用,這也是RA系列MCU非常重要的一個
    的頭像 發表于 09-23 09:38 ?1681次閱讀
    瑞薩RA系列MCU的<b class='flag-5'>外部</b>引腳<b class='flag-5'>中斷</b>詳解

    何時使用 GPIO 中斷外部中斷

    何時使用 GPIO 中斷外部中斷
    發表于 08-26 07:27

    中科昊芯Core_DSC280025C開發板的外部中斷問題

    向量表/ Interrupt_initVectorTable(); /*配置GPIO30為IO輸入,用于觸發外部中斷 * GPIO31為I
    發表于 08-08 22:06

    你真的懂樹莓派5嘛?樹莓派5引腳圖全面指南:理解GPIO引腳及其功能!

    樹莓派5上的GPIO通用輸入/輸出GPIO)引腳是樹莓派上的物理連接器,允許樹莓派與傳感器、LED、電機等外部電子元件進行交互。這些引腳可
    的頭像 發表于 07-04 15:27 ?3324次閱讀
    你真的懂樹莓派5嘛?樹莓派5引腳圖全面指南:理解<b class='flag-5'>GPIO</b>引腳及其功能!

    第六章 外部中斷

    本章介紹W55MH32的IO口作為外部中斷輸入的使用。先闡述了NVIC(嵌套向量中斷控制器) 的結構、寄存器、優先級及相關函數,再說明EXTI(
    的頭像 發表于 05-26 16:27 ?1493次閱讀
    第六章 <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    MAX7314 18端口GPIO,帶有LED亮度控制和中斷,提供熱插入保護技術手冊

    ),或具有跳變檢測的邏輯輸入。僅輸出端口可被指定為過渡檢測的中斷輸出端口。輸出可驅動LED,或者通過外部
    的頭像 發表于 05-26 10:20 ?988次閱讀
    MAX7314 18端口<b class='flag-5'>GPIO</b>,帶有LED亮度控制和<b class='flag-5'>中斷</b>,提供熱插入保護技術手冊

    NCA9555 具有16位通用并行I2C總線數輸入輸出GPIO擴展功能

    NCA9555是一款24引腳CMOS器件,提供16位通用并行I2C總線數輸入/輸出GPIO擴展功能。它和ACPI電源開關,傳感器,按鍵,LED和風扇等應用的額外I/O口需求提供了簡單的解決方案
    發表于 05-19 18:02 ?0次下載

    FCX3無法進入GPIO中斷是怎么回事?

    我嘗試將GPIO20配置成中斷引腳,若輸入為上升沿,則讓GPIO24引腳輸出低電平;若輸入為下降
    發表于 05-14 07:38

    基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制GPIO中斷

    1、實驗簡介本實驗將演示如何在小凌派-RK2206開發板上使用IOT庫的GPIO中斷模式,進行GPIO編程開發。例程將創建一個任務,通過配置GPIO引腳為
    的頭像 發表于 04-21 10:39 ?1092次閱讀
    基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b><b class='flag-5'>中斷</b>