99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

第十一章 EXTI——外部中斷/事件控制器

W55MH32 ? 來源:W55MH32 ? 作者:W55MH32 ? 2025-05-22 17:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單芯片解決方案,開啟全新體驗——W55MH32 高性能以太網(wǎng)單片機

W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機,它為用戶帶來前所未有的集成化體驗。這顆芯片將強大的組件集于一身,具體來說,一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨立的32KB以太網(wǎng)收發(fā)緩存,可供8個獨立硬件socket使用。如此配置,真正實現(xiàn)了All-in-One解決方案,為開發(fā)者提供極大便利。

在封裝規(guī)格上,W55MH32 提供了兩種選擇:QFN100和QFN68。

W55MH32L采用QFN100封裝版本,尺寸為12x12mm,其資源豐富,專為各種復雜工控場景設(shè)計。它擁有66個GPIO、3個ADC、12通道DMA、17個定時器、2個I2C、5個串口、2個SPI接口(其中1個帶I2S接口復用)、1個CAN、1個USB2.0以及1個SDIO接口。如此豐富的外設(shè)資源,能夠輕松應(yīng)對工業(yè)控制中多樣化的連接需求,無論是與各類傳感器、執(zhí)行器的通信,還是對復雜工業(yè)協(xié)議的支持,都能游刃有余,成為復雜工控領(lǐng)域的理想選擇。 同系列還有QFN68封裝的W55MH32Q版本,該版本體積更小,僅為8x8mm,成本低,適合集成度高的網(wǎng)關(guān)模組等場景,軟件使用方法一致。更多信息和資料請進入http://www.w5500.com/網(wǎng)站或者私信獲取。

此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及 MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。

為助力開發(fā)者快速上手與深入開發(fā),基于W55MH32L這顆芯片,WIZnet精心打造了配套開發(fā)板。開發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實現(xiàn)調(diào)試、下載以及串口打印日志等功能。開發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開發(fā)者全面評估芯片性能。

若您想獲取芯片和開發(fā)板的更多詳細信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價格等,歡迎訪問官方網(wǎng)頁:http://www.w5500.com/,我們期待與您共同探索W55MH32的無限可能。

wKgZPGgbOfaANhwzACodXd3sVzg463.png

第十一章 EXTI——外部中斷/事件控制器

本章參考資料:《W55MH32-中文參考手冊》中斷和事件章節(jié)和7.4章節(jié)AFIO寄存器描述。

上一章節(jié)我們已經(jīng)詳細介紹了NVIC,對W55MH32系列中斷管理系統(tǒng)有個全局的了解,我們這章的內(nèi)容是NVIC的實例應(yīng)用, 也是W55MH32控制器非常重要的一個資源。學習本章時,配合《W55MH32-參考手冊》中斷和事件章節(jié)一起閱讀,效果會更佳,特別是涉及到寄存器說明的部分。

特別說明,本書內(nèi)容是以W55MH32系列控制器資源講解。

1 EXTI簡介

EXTI(External interrupt/event controller)—外部中斷/事件控制器,管理了控制器的20個中斷/事件線。 每個中斷/事件線都對應(yīng)有一個邊沿檢測器,可以實現(xiàn)輸入信號的上升沿檢測和下降沿的檢測。EXTI可以實現(xiàn)對每個中斷/事件線進行單獨配置, 可以單獨配置為中斷或者事件,以及觸發(fā)事件的屬性。

2 EXTI功能框圖

EXTI的功能框圖包含了EXTI最核心內(nèi)容,掌握了功能框圖,對EXTI就有一個整體的把握,在編程時思路就非常清晰。EXTI功能框圖見圖 EXTI功能框圖 。

在圖 EXTI功能框圖 可以看到很多在信號線上打一個斜杠并標注“20”字樣,這個表示在控制器內(nèi)部類似的信號線路有20個, 這與EXTI總共有20個中斷/事件線是吻合的。所以我們只要明白其中一個的原理,那其他19個線路原理也就知道了。

wKgZPGgu6XCAUWFFAAUzlKJy8Sc098.png

EXTI可分為兩大部分功能,一個是產(chǎn)生中斷,另一個是產(chǎn)生事件,這兩個功能從硬件上就有所不同。

首先我們來看圖 EXTI功能框圖 中紅色虛線指示的電路流程。它是一個產(chǎn)生中斷的線路,最終信號流入到NVIC控制器內(nèi)。

編號1是輸入線,EXTI控制器有19個中斷/事件輸入線,這些輸入線可以通過寄存器設(shè)置為任意一個GPIO,也可以是一些外設(shè)的事件, 這部分內(nèi)容我們將在后面專門講解。輸入線一般是存在電平變化的信號。

編號2是一個邊沿檢測電路,它會根據(jù)上升沿觸發(fā)選擇寄存器(EXTI_RTSR)和下降沿觸發(fā)選擇寄存器(EXTI_FTSR)對應(yīng)位的設(shè)置來控制信號觸發(fā)。 邊沿檢測電路以輸入線作為信號輸入端,如果檢測到有邊沿跳變就輸出有效信號1給編號3電路,否則輸出無效信號0。 而EXTI_RTSR和EXTI_FTSR兩個寄存器可以控制需要檢測哪些類型的電平跳變過程,可以是只有上升沿觸發(fā)、只有下降沿觸發(fā)或者上升沿和下降沿都觸發(fā)。

編號3電路實際就是一個或門電路,它的一個輸入來自編號2電路,另外一個輸入來自軟件中斷事件寄存器(EXTI_SWIER)。EXTI_SWIER允許我們通過程序控制就可以啟動中斷/事件線, 這在某些地方非常有用。我們知道或門的作用就是有1就為1,所以這兩個輸入隨便一個有有效信號1就可以輸出1給編號4和編號6電路。

編號4電路是一個與門電路,它的一個輸入是編號3電路,另外一個輸入來自中斷屏蔽寄存器(EXTI_IMR)。與門電路要求輸入都為1才輸出1, 導致的結(jié)果是如果EXTI_IMR設(shè)置為0時,那不管編號3電路的輸出信號是1還是0,最終編號4電路輸出的信號都為0;如果EXTI_IMR設(shè)置為1時, 最終編號4電路輸出的信號才由編號3電路的輸出信號決定,這樣我們可以簡單的控制EXTI_IMR來實現(xiàn)是否產(chǎn)生中斷的目的。 編號4電路輸出的信號會被保存到掛起寄存器(EXTI_PR)內(nèi),如果確定編號4電路輸出為1就會把EXTI_PR對應(yīng)位置1。

編號5是將EXTI_PR寄存器內(nèi)容輸出到NVIC內(nèi),從而實現(xiàn)系統(tǒng)中斷事件控制。

接下來我們來看看綠色虛線指示的電路流程。它是一個產(chǎn)生事件的線路,最終輸出一個脈沖信號。

產(chǎn)生事件線路是在編號3電路之后與中斷線路有所不同,之前電路都是共用的。編號6電路是一個與門,它的一個輸入來自編號3電路, 另外一個輸入來自事件屏蔽寄存器(EXTI_EMR)。如果EXTI_EMR設(shè)置為0時,那不管編號3電路的輸出信號是1還是0,最終編號6電路輸出的信號都為0; 如果EXTI_EMR設(shè)置為1時,最終編號6電路輸出的信號才由編號3電路的輸出信號決定,這樣我們可以簡單的控制EXTI_EMR來實現(xiàn)是否產(chǎn)生事件的目的。

編號7是一個脈沖發(fā)生器電路,當它的輸入端,即編號6電路的輸出端,是一個有效信號1時就會產(chǎn)生一個脈沖;如果輸入端是無效信號就不會輸出脈沖。

編號8是一個脈沖信號,就是產(chǎn)生事件的線路最終的產(chǎn)物,這個脈沖信號可以給其他外設(shè)電路使用,比如定時器TIM、模擬數(shù)字轉(zhuǎn)換器ADC等等,這樣的脈沖信號一般用來觸發(fā)TIM或者ADC開始轉(zhuǎn)換。

產(chǎn)生中斷線路目的是把輸入信號輸入到NVIC,進一步會運行中斷服務(wù)函數(shù),實現(xiàn)功能,這樣是軟件級的。而產(chǎn)生事件線路目的就是傳輸一個脈沖信號給其他外設(shè)使用, 并且是電路級別的信號傳輸,屬于硬件級的。

另外,EXTI是在APB2總線上的,在編程時候需要注意到這點。

3 中斷/事件線

EXTI有20個中斷/事件線,每個GPIO都可以被設(shè)置為輸入線,占用EXTI0至EXTI15, 還有另外七根用于特定的外設(shè)事件,見表 EXTI中斷_事件線 。

4根特定外設(shè)中斷/事件線由外設(shè)觸發(fā),具體用法參考《W55MH32參考手冊》中對外設(shè)的具體說明。

中斷 / 事件線 輸入源
EXTI0 PX0(X 可為 A, B, C, D, E, F, G, H, I)
EXTI1 PX1(X 可為 A, B, C, D, E, F, G, H, I)
EXTI2 PX2(X 可為 A, B, C, D, E, F, G, H, I)
EXTI3 PX3(X 可為 A, B, C, D, E, F, G, H, I)
EXTI4 PX4(X 可為 A, B, C, D, E, F, G, H, I)
EXTI5 PX5(X 可為 A, B, C, D, E, F, G, H, I)
EXTI6 PX6(X 可為 A, B, C, D, E, F, G, H, I)
EXTI7 PX7(X 可為 A, B, C, D, E, F, G, H, I)
EXTI8 PX8(X 可為 A, B, C, D, E, F, G, H, I)
EXTI9 PX9(X 可為 A, B, C, D, E, F, G, H, I)
EXTI10 PX10(X 可為 A, B, C, D, E, F, G, H, I)
EXTI11 PX11(X 可為 A, B, C, D, E, F, G, H, I)
EXTI12 PX12(X 可為 A, B, C, D, E, F, G, H, I)
EXTI13 PX13(X 可為 A, B, C, D, E, F, G, H, I)
EXTI14 PX14(X 可為 A, B, C, D, E, F, G, H, I)
EXTI15 PX15(X 可為 A, B, C, D, E, F, G, H, I)
EXTI16 PVD 輸出
EXTI17 RTC 鬧鐘事件
EXTI18 USB 喚醒事件
EXTI19 以太網(wǎng)喚醒事件(只適用互聯(lián)型)

EXTI0至EXTI15用于GPIO,通過編程控制可以實現(xiàn)任意一個GPIO作為EXTI的輸入源。由表 EXTI中斷_事件線 可知, EXTI0可以通過AFIO的外部中斷配置寄存器1(AFIO_EXTICR1)的EXTI0[3:0]位選擇配置為PA0、 PB0、PC0、PD0、PE0、PF0、PG0、PH0或者PI0,見圖 EXTI0輸入源選擇 。其他EXTI線(EXTI中斷/事件線)使用配置都是類似的。

wKgZO2gu6XCARr3RAAEt6g2TfN8283.png

4 EXTI初始化結(jié)構(gòu)體詳解

標準庫函數(shù)對每個外設(shè)都建立了一個初始化結(jié)構(gòu)體,比如EXTI_InitTypeDef,結(jié)構(gòu)體成員用于設(shè)置外設(shè)工作參數(shù),并由外設(shè)初始化配置函數(shù), 比如EXTI_Init()調(diào)用,這些設(shè)定參數(shù)將會設(shè)置外設(shè)相應(yīng)的寄存器,達到配置外設(shè)工作環(huán)境的目的。

初始化結(jié)構(gòu)體和初始化庫函數(shù)配合使用是標準庫精髓所在,理解了初始化結(jié)構(gòu)體每個成員意義基本上就可以對該外設(shè)運用自如了。 初始化結(jié)構(gòu)體定義在w55mh32_exti.h文件中,初始化庫函數(shù)定義在w55mh32_exti.c文件中,編程時我們可以結(jié)合這兩個文件內(nèi)注釋使用。

代碼清單:EXTI-1 EXTI初始化結(jié)構(gòu)體

typedef struct {
    uint32_t EXTI_Line;                 // 中斷/事件線
    EXTIMode_TypeDef EXTI_Mode;         // EXTI模式
    EXTITrigger_TypeDef EXTI_Trigger;   // 觸發(fā)類型
    FunctionalState EXTI_LineCmd;       // EXTI使能
} EXTI_InitTypeDef;

EXTI_Line:EXTI中斷/事件線選擇,可選EXTI0至EXTI19,可參考表 EXTI中斷_事件線 選擇。

EXTI_Mode:EXTI模式選擇,可選為產(chǎn)生中斷(EXTI_Mode_Interrupt)或者產(chǎn)生事件(EXTI_Mode_Event)。

EXTI_Trigger:EXTI邊沿觸發(fā)事件,可選上升沿觸發(fā)(EXTI_Trigger_Rising)、 下降沿觸發(fā)( EXTI_Trigger_Falling)或者上升沿和下降沿都觸發(fā)( EXTI_Trigger_Rising_Falling)。

EXTI_LineCmd:控制是否使能EXTI線,可選使能EXTI線(ENABLE)或禁用(DISABLE)。

5 補充說明

關(guān)于使用外部按鍵中斷的理解補充,按教程與參考手冊的中斷/事件線與輸入源的表格看,可以使用EXTI0至15線路對應(yīng)到使用16個GPIO做外部中斷, 需要注意的是這16個線路并非都有單獨的中斷源,從w55mh32.h查看對應(yīng)芯片型號有EXTI0_IRQn、EXTI1_IRQn、EXTI2_IRQn、EXTI3_IRQn、EXTI4_IRQn、EXTI9_5_IRQn、EXTI15_10_IRQn, 再查看啟動文件那邊定義的中斷函數(shù)同樣也是EXTI0_IRQHandler、EXTI1_IRQHandler、EXTI2_IRQHandler、EXTI3_IRQHandler、EXTI4_IRQHandler、EXTI9_5_IRQHandler、EXTI15_10_IRQHandler。

這里再次強調(diào)一下關(guān)于W55MH32中斷應(yīng)用概覽章節(jié)的補充說明內(nèi)容, NVIC_PriorityGroupConfig是整個程序中只需要設(shè)置一次 ,當設(shè)置好了中斷優(yōu)先級分組,其他各種外設(shè)對應(yīng)的中斷向量的中斷優(yōu)先級既是基于目前設(shè)置分組來解讀。

在其他例程中很多將NVIC_PriorityGroupConfig寫在了每個外設(shè)自己的中斷配置函數(shù)里面,有些可能多個外設(shè)配置函數(shù)下重復了NVIC_PriorityGroupConfig()這句, 這里提醒用戶后續(xù)編寫自己程序時只需要調(diào)用一次即可,并且從代碼布局邏輯來說適合放在main()函數(shù)中。

WIZnet 是一家無晶圓廠半導體公司,成立于 1998 年。產(chǎn)品包括互聯(lián)網(wǎng)處理器 iMCU?,它采用 TOE(TCP/IP 卸載引擎)技術(shù),基于獨特的專利全硬連線 TCP/IP。iMCU? 面向各種應(yīng)用中的嵌入式互聯(lián)網(wǎng)設(shè)備。

WIZnet 在全球擁有 70 多家分銷商,在香港、韓國、美國設(shè)有辦事處,提供技術(shù)支持和產(chǎn)品營銷。

香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。

審核編輯 黃宇

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

    關(guān)注

    459

    文章

    52502

    瀏覽量

    440732
  • 單片機
    +關(guān)注

    關(guān)注

    6067

    文章

    44991

    瀏覽量

    650377
  • WIZnet
    +關(guān)注

    關(guān)注

    3

    文章

    20

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    明德?lián)P視頻分享點撥FPGA課程--第十一章 ?Signaltapll的使用技巧

    第十一章Signaltapll的使用技巧1. signaltapll使用http://yunpan.cn/cjZTiDA9pY56x訪問密碼 c359
    發(fā)表于 11-11 09:03

    第十一期 存儲與讀取文件

    第十一期實現(xiàn)寫入文件與文件的讀取操作
    發(fā)表于 09-16 12:23

    EXTI外部中斷/事件控制器

    EXTI——外部中斷/事件控制器。外部中斷簡介,EXTI
    發(fā)表于 08-13 07:57

    EXTI外部中斷/事件控制器框圖

    EXTI(一)外部中斷/事件控制器框圖
    發(fā)表于 08-13 07:17

    EXTI外部中斷/事件控制器

    EXTI(External interrupt/event controller)—外部中斷/事件控制器,管理了控制器的20個
    發(fā)表于 08-16 06:45

    EXTI外部中斷/事件控制器是由哪些部分構(gòu)成的

    何為EXTI外部呢?EXTI外部中斷/事件控制器是由哪些部分構(gòu)成的?
    發(fā)表于 11-16 09:11

    STM32外部中斷事件控制器EXTI的相關(guān)資料推薦

    : External interrupt / event controller外部中斷/事件控制器提示:以下是本篇文章正文內(nèi)容一、EXTI功能框圖二、使用方法1.
    發(fā)表于 12-01 08:06

    三相電路原理(第十一章)

    三相電路原理(第十一章)  11-1 三相電路 11-2 線電壓(電流)與相電壓(電流)的關(guān)系 11-3 對稱三相電路的計算 11-4 不對稱三相電路的概念&nb
    發(fā)表于 05-23 11:44 ?53次下載

    STM32外部中斷事件控制器EXTI概念及使用方法

    : External interrupt / event controller外部中斷/事件控制器提示:以下是本篇文章正文內(nèi)容一、EXTI功能框圖二、使用方法1.
    發(fā)表于 11-22 16:21 ?7次下載
    STM32<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>事件<b class='flag-5'>控制器</b><b class='flag-5'>EXTI</b>概念及使用方法

    STM32 外部中斷/事件控制器EXTI

    EXTI(External interrupt/event controller)—外部中斷/事件控制器,管理了控制器的20個
    發(fā)表于 01-14 15:26 ?0次下載
    STM32 <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>/事件<b class='flag-5'>控制器</b><b class='flag-5'>EXTI</b>

    STM32CUBEMX(11)--外部中斷(EXTI)

    外部中斷和事件控制器 (EXTI) 管理外部和內(nèi)部異步事件 / 中斷,并生成相應(yīng)的事件請求到CP
    的頭像 發(fā)表于 11-14 16:39 ?2596次閱讀
    STM32CUBEMX(11)--<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>(<b class='flag-5'>EXTI</b>)

    STM32外部中斷控制器EXTI詳解

    什么是外部中斷控制器,外部中斷控制器在STM32芯片中處于什么位置,它的作用是什么,EXTI與GPIO的映射關(guān)系?
    的頭像 發(fā)表于 04-20 11:44 ?3286次閱讀
    STM32<b class='flag-5'>外部</b><b class='flag-5'>中斷控制器</b><b class='flag-5'>EXTI</b>詳解

    STM32的IO外部中斷EXTI的使用

    的方式訪問輸入引腳,還可以通過另外一種叫做外部中斷的方式來對引腳的輸入信號進行檢測,本篇首先介紹下EXTI的結(jié)構(gòu),接著介紹外部中斷的相關(guān)概念
    的頭像 發(fā)表于 06-22 10:21 ?2850次閱讀
    STM32的IO<b class='flag-5'>外部</b><b class='flag-5'>中斷</b><b class='flag-5'>EXTI</b>的使用

    STM32CUBEIDE(14)----外部中斷EXTI

    外部中斷和事件控制器 (EXTI) 管理外部和內(nèi)部異步事件 / 中斷,并生成相應(yīng)的事件請求到CP
    的頭像 發(fā)表于 07-26 14:33 ?1907次閱讀
    STM32CUBEIDE(14)----<b class='flag-5'>外部</b><b class='flag-5'>中斷</b><b class='flag-5'>EXTI</b>

    STM32L4外部中斷及事件控制模塊(EXTI)

    電子發(fā)燒友網(wǎng)站提供《STM32L4外部中斷及事件控制模塊(EXTI).pdf》資料免費下載
    發(fā)表于 08-01 10:23 ?0次下載
    STM32L4<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>及事件<b class='flag-5'>控制</b>模塊(<b class='flag-5'>EXTI</b>)