女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

第六章 外部中斷

W55MH32 ? 來(lái)源:W55MH32 ? 作者:W55MH32 ? 2025-05-26 16:27 ? 次閱讀

單芯片解決方案,開(kāi)啟全新體驗(yàn)——W55MH32 高性能以太網(wǎng)單片機(jī)

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

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

W55MH32Q采用QFN68封裝版本,尺寸為8x8mm,它擁有36個(gè)GPIO、3個(gè)ADC、12通道DMA、17個(gè)定時(shí)器、2個(gè)I2C、3個(gè)串口、2個(gè)SPI接口(其中1個(gè)帶I2S接口復(fù)用)、1個(gè)CAN以及1個(gè)USB2.0。在保持與同系列其他版本一致的核心性能基礎(chǔ)上,僅減少了部分GPIO以及SDIO接口,其他參數(shù)保持一致,性價(jià)比優(yōu)勢(shì)顯著,尤其適合網(wǎng)關(guān)模組等對(duì)空間布局要求較高的場(chǎng)景。緊湊的尺寸和精簡(jiǎn)化外設(shè)配置,使其能夠在有限空間內(nèi)實(shí)現(xiàn)高效的網(wǎng)絡(luò)連接與數(shù)據(jù)交互,成為物聯(lián)網(wǎng)網(wǎng)關(guān)、邊緣計(jì)算節(jié)點(diǎn)等緊湊型設(shè)備的理想選擇。 同系列還有QFN100封裝的W55MH32L版本,該版本擁有更豐富的外設(shè)資源,適用于需要多接口擴(kuò)展的復(fù)雜工控場(chǎng)景,軟件使用方法一致。更多信息和資料請(qǐng)進(jì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ò)通信安全再添保障。

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

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

wKgZO2gbOfaAVPzkACJSygzv-rI600.png

第六章 外部中斷

在前面幾章的學(xué)習(xí)中,我們掌握了 W55MH32 的 IO 口最基本的操作。本章我們將介紹如何把 W55MH32 的 IO 口作為外部中斷輸入來(lái)使用。

1 NVIC概述

1.1 NVIC簡(jiǎn)介

什么是 NVIC?NVIC 即嵌套向量中斷控制器,全稱 Nested vectored interrupt controller。它是內(nèi)核的器件,所以它的更多描述可以看內(nèi)核有關(guān)的資料《Cortex-M3 權(quán)威指南》。M3 內(nèi)核都是支持 256 個(gè)中斷,其中包含了 16 個(gè)系統(tǒng)中斷和 240 個(gè)外部中斷,并且具有 256 級(jí)的可編程中斷設(shè)置。然而芯片廠商一般不會(huì)把內(nèi)核的這些資源全部用完,下面我們看看中斷向量表-系統(tǒng)中斷部分:

位置 優(yōu)先級(jí) 優(yōu)先級(jí)類型 名稱 說(shuō)明 地址
- - 保留 0x0000_0000
-3 固定 - Reset 復(fù)位 0x0000_0004
-2 固定 - NMI 不可屏蔽中斷
RCC 時(shí)鐘安全系統(tǒng) (CSS) 聯(lián)接到 NMI 向量
0x0000_0008
-1 固定 - 硬件失效 (HardFault) 所有類型的失效 0x0000_000C
0 可設(shè)置 - 存儲(chǔ)管理 (MemManage) 存儲(chǔ)器管理 0x0000_0010
1 可設(shè)置 - 總線錯(cuò)誤 (BusFault) 預(yù)取指失敗,存儲(chǔ)器訪問(wèn)失敗 0x0000_0014
2 可設(shè)置 - 錯(cuò)誤應(yīng)用 (UsageFault) 未定義的指令或非法狀態(tài) 0x0000_0018
- - 保留 0x0000_001C~0x0000_002B
3 可設(shè)置 - SVCall 通過(guò) SWI 指令的系統(tǒng)服務(wù)調(diào)用 0x0000_002C
4 可設(shè)置 - 調(diào)試監(jiān)控 (DebugMonitor) 調(diào)試監(jiān)控器 0x0000_0030
- - 保留 0x0000_0034
5 可設(shè)置 - PendSV 可掛起的系統(tǒng)服務(wù) 0x0000_0038
6 可設(shè)置 - SysTick 系統(tǒng)嘀嗒定時(shí)器 0x0000_003C

關(guān)于 60 個(gè)外部中斷部分在《W55MH32參考手冊(cè)_V1.0.0(中文版).pdf》有詳細(xì)的列表,這里就不列出來(lái)了。

1.2 NVIC寄存器

NVIC 相關(guān)的寄存器定義了可以在 core_cm3.h 文件中找到。我們直接通過(guò)程序的定義來(lái)分NVIC 相關(guān)的寄存器,其定義如下:

typedef struct
{
 __IOM uint32_t ISER[8U]; /* 中斷使能寄存器 */
uint32_t RESERVED0[24U];
 __IOM uint32_t ICER[8U]; /* 中斷清除使能寄存器 */
 uint32_t RSERVED1[24U];
 __IOM uint32_t ISPR[8U]; /* 中斷使能掛起寄存器 */
 uint32_t RESERVED2[24U];
 __IOM uint32_t ICPR[8U]; /* 中斷解掛寄存器 */
 uint32_t RESERVED3[24U];
 __IOM uint32_t IABR[8U]; /* 中斷有效位寄存器 */
 uint32_t RESERVED4[56U];
 __IOM uint8_t IP[240U]; /* 中斷優(yōu)先級(jí)寄存器(8Bit 位寬) */
 uint32_t RESERVED5[644U];
 __OM uint32_t STIR; /* 軟件觸發(fā)中斷寄存器 */
} NVIC_Type;

W55MH32 的中斷在這些寄存器的控制下有序的執(zhí)行的。只有了解這些中斷寄存器,才能方便的使用 W55MH32 的中斷。下面重點(diǎn)介紹這幾個(gè)寄存器:

ISER[8]:ISER 全稱是:Interrupt Set Enable Registers,這是一個(gè)中斷使能寄存器組。上面說(shuō)了 CM3 內(nèi)核支持 256 個(gè)中斷,這里用 8 個(gè) 32 位寄存器來(lái)控制,每個(gè)位控制一個(gè)中斷。但是W55MH32 的可屏蔽中斷最多只有 60 個(gè),所以對(duì)我們來(lái)說(shuō),有用的就是兩個(gè)(ISER[0]和ISER[1]),總共可以表示 64 個(gè)中斷。而 W55MH32 只用了其中的 60 個(gè)。ISER[0]的 bit0~31 分別對(duì)應(yīng)中斷 0~31;ISER[1]的 bit0~27 對(duì)應(yīng)中斷 32~59,這樣總共 60 個(gè)中斷就可以分別對(duì)應(yīng)上了。你要使能某個(gè)中斷,必須設(shè)置相應(yīng)的 ISER 位為 1,使該中斷被使能(這里僅僅是使能,還要配合中斷分組、屏蔽、IO 口映射等設(shè)置才算是一個(gè)完整的中斷設(shè)置)。具體每一位對(duì)應(yīng)哪個(gè)中斷,請(qǐng)參考 W55MH32 xe.h 里面的第 69 行。

ICER[8]:全稱是:Interrupt Clear Enable Registers,是一個(gè)中斷除能寄存器組。該寄存器組與 ISER 的作用恰好相反,是用來(lái)清除某個(gè)中斷的使能的。其對(duì)應(yīng)位的功能,也和 ICER 一樣。這里要專門(mén)設(shè)置一個(gè) ICER 來(lái)清除中斷位,而不是向 ISER 寫(xiě) 0 來(lái)清除,是因?yàn)?NVIC 的這些寄存器都是寫(xiě) 1 有效的,寫(xiě) 0 是無(wú)效的。具體為什么是這樣子,可以查看《Cortex-M3 權(quán)威指南》第 125 頁(yè),NVIC 章節(jié)。

ISPR[8]:全稱是:Interrupt Set Pending Registers,是一個(gè)中斷使能掛起控制寄存器組。每個(gè)位對(duì)應(yīng)的中斷和 ISER 是一樣的。通過(guò)置 1,可以將正在進(jìn)行的中斷掛起,而執(zhí)行同級(jí)或更高級(jí)別的中斷。寫(xiě) 0 是無(wú)效的。

ICPR[8]:全稱是:Interrupt Clear Pending Registers,是一個(gè)中斷解掛控制寄存器組。其作用與 ISPR 相反,對(duì)應(yīng)位也和 ISER 是一樣的。通過(guò)設(shè)置 1,可以將掛起的中斷解掛。寫(xiě) 0 無(wú)效。

IABR[8]:全稱是:Interrupt Active Bit Registers,是一個(gè)中斷激活標(biāo)志位寄存器組。對(duì)應(yīng)位所代表的中斷和 ISER 一樣,如果為 1,則表示該位所對(duì)應(yīng)的中斷正在被執(zhí)行。這是一個(gè)只讀寄存器,通過(guò)它可以知道當(dāng)前在執(zhí)行的中斷是哪一個(gè)。在中斷執(zhí)行完了由硬件自動(dòng)清零。

IP[240]:全稱是:Interrupt Priority Registers,是一個(gè)中斷優(yōu)先級(jí)控制的寄存器組。這個(gè)寄存器組相當(dāng)重要!W55MH32 的中斷分組與這個(gè)寄存器組密切相關(guān)。IP 寄存器組由 240 個(gè)8bit 的寄存器組成,每個(gè)可屏蔽中斷占用 8bit,這樣總共可以表示 240 個(gè)可屏蔽中斷。而W55MH32 只用到了其中的 60 個(gè)。IP[59]~IP[0]分別對(duì)應(yīng)中斷 59~0。而每個(gè)可屏蔽中斷占用的 8bit 并沒(méi)有全部使用,而是只用了高 4 位。這 4 位,又分為搶占優(yōu)先級(jí)和子優(yōu)先級(jí)。搶占優(yōu)先級(jí)在前,子優(yōu)先級(jí)在后。而這兩個(gè)優(yōu)先級(jí)各占幾個(gè)位又要根據(jù) SCB->AIRCR 中的中斷分組設(shè)置來(lái)決定。

1.3 中斷優(yōu)先級(jí)

W55MH32中的中斷優(yōu)先級(jí)可以分為:搶占式優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí),響應(yīng)優(yōu)先級(jí)也稱子優(yōu)先級(jí),每個(gè)中斷源都需要被指定這兩種優(yōu)先級(jí)。搶占式優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)的區(qū)別:搶占優(yōu)先級(jí):搶占優(yōu)先級(jí)高的中斷可以打斷正在執(zhí)行的搶占優(yōu)先級(jí)低的中斷。響應(yīng)優(yōu)先級(jí):搶占優(yōu)先級(jí)相同,響應(yīng)優(yōu)先級(jí)高的中斷不能打斷響應(yīng)優(yōu)先級(jí)低的中斷。

還有一種情況就是當(dāng)兩個(gè)或者多個(gè)中斷的搶占式優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)相同時(shí),那么就遵循自然優(yōu)先級(jí),看中斷向量表的中斷排序,數(shù)值越小,優(yōu)先級(jí)越高。

在 NVIC 中由寄存器 NVIC_IPR0-NVIC_IPR59 共 60 個(gè)寄存器控制中斷優(yōu)先級(jí),每個(gè)寄存器的 8 位,所以就有了 240 個(gè)寬度為 8bit 的中斷優(yōu)先級(jí)控制寄存器,原則上每個(gè)外部中斷可配置的優(yōu)先級(jí)為 0~255,數(shù)值越小,優(yōu)先級(jí)越高。但是實(shí)際上 M3 芯片為了精簡(jiǎn)設(shè)計(jì),只使用了高四位[7:4],低四位取零,這樣以至于最多只有 16 級(jí)中斷嵌套,即 2^4=16。對(duì)于 NVCI 的中斷優(yōu)先級(jí)分組:W55MH32 將中斷分為 5 個(gè)組,組 0~4。該分組的設(shè)置是由 SCB->AIRCR 寄存器的 bit10~8 來(lái)定義的。具體的分配關(guān)系如表所示:

優(yōu)先級(jí)分組 AIRCR[10:8] bit [7:4] 分配情況 分配結(jié)果
0 111 0:4 0 位搶占優(yōu)先級(jí),4 位響應(yīng)優(yōu)先級(jí)
1 110 1:3 1 位搶占優(yōu)先級(jí),3 位響應(yīng)優(yōu)先級(jí)
2 101 2:2 2 位搶占優(yōu)先級(jí),2 位響應(yīng)優(yōu)先級(jí)
3 100 3:1 3 位搶占優(yōu)先級(jí),1 位響應(yīng)優(yōu)先級(jí)
4 011 4:0 4 位搶占優(yōu)先級(jí),0 位響應(yīng)優(yōu)先級(jí)

通過(guò)這個(gè)表,我們就可以清楚的看到組 0~4 對(duì)應(yīng)的配置關(guān)系,例如優(yōu)先級(jí)分組設(shè)置為 3,那么此時(shí)所有的 60 個(gè)中斷,每個(gè)中斷的中斷優(yōu)先寄存器的高四位中的最高 3 位是搶占優(yōu)先級(jí),低 1 位是響應(yīng)優(yōu)先級(jí)。每個(gè)中斷,你可以設(shè)置搶占優(yōu)先級(jí)為 0~7,響應(yīng)優(yōu)先級(jí)為 1 或 0。搶占優(yōu)先級(jí)的級(jí)別高于響應(yīng)優(yōu)先級(jí)。而數(shù)值越小所代表的優(yōu)先級(jí)就越高。

結(jié)合實(shí)例說(shuō)明一下:假定設(shè)置中斷優(yōu)先級(jí)分組為 2,然后設(shè)置中斷 3(RTC_WKUP 中斷)的搶占優(yōu)先級(jí)為 2,響應(yīng)優(yōu)先級(jí)為 1。中斷 6(外部中斷 0)的搶占優(yōu)先級(jí)為 3,響應(yīng)優(yōu)先級(jí)為 0。

中斷 7(外部中斷 1)的搶占優(yōu)先級(jí)為 2,響應(yīng)優(yōu)先級(jí)為 0。那么這 3 個(gè)中斷的優(yōu)先級(jí)順序?yàn)椋?/p>

中斷 7>中斷 3>中斷 6。上面例子中的中斷 3 和中斷 7 都可以打斷中斷 6 的中斷。而中斷 7 和中斷 3 卻不可以相互打斷!

1.4 NVIC 相關(guān)函數(shù)

下面列出我們較為常用的函數(shù)進(jìn)行,想了解更多其他的函數(shù)請(qǐng)自行查閱。

1. HAL_NVIC_SetPriorityGrouping 函數(shù)

HAL_NVIC_SetPriorityGrouping 是設(shè)置中斷優(yōu)先級(jí)分組函數(shù)。其聲明如下:

void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup);

?函數(shù)描述:用于設(shè)置中斷優(yōu)先級(jí)分組。

?函數(shù)形參:形參 1 是中斷優(yōu)先級(jí)分組號(hào),可以選擇范圍:NVIC_PRIORITYGROUP_0 到NVIC_PRIORITYGROUP_4(共 5 組)。

?函數(shù)返回值:無(wú)

?注意事項(xiàng):這個(gè)函數(shù)在一個(gè)工程里基本只調(diào)用一次,而且是在程序 HAL 庫(kù)初始化函數(shù)里面已經(jīng)被調(diào)用,后續(xù)就不會(huì)再調(diào)用了。因?yàn)楫?dāng)后續(xù)調(diào)用設(shè)置成不同的中斷優(yōu)先級(jí)分組時(shí),有可能造成前面設(shè)置好的搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)不匹配。

2. HAL_NVIC_SetPriority 函數(shù)

HAL_NVIC_SetPriority 是設(shè)置中斷優(yōu)先級(jí)函數(shù)。其聲明如下:

void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority,uint32_t SubPriority);

?函數(shù)描述:用于設(shè)置中斷的搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)(子優(yōu)先級(jí))。

?函數(shù)形參:

······形參 1 是中斷號(hào),可以選擇范圍:IRQn_Type 定義的枚舉類型,定義在 W55MH32 xe.h。

······形參 2 是搶占優(yōu)先級(jí),可以選擇范圍:0 到 15。

······形參 3 是響應(yīng)優(yōu)先級(jí),可以選擇范圍:0 到 15。

?函數(shù)返回值:無(wú)

3. HAL_NVIC_EnableIRQ 函數(shù)

HAL_NVIC_EnableIRQ 是中斷使能函數(shù)。其聲明如下:

void HAL_NVIC_EnableIRQ(IRQn_Type IRQn);

?函數(shù)描述:用于使能中斷。

?函數(shù)形參:形 參 IRQn 是 中 斷 號(hào) , 可 以 選 擇 范 圍 : IRQn_Type 定 義 的 枚 舉 類 型 , 定 義 在W55MH32 xe.h。

?函數(shù)返回值:無(wú)

4. HAL_NVIC_DisableIRQ 函數(shù)

HAL_NVIC_DisableIRQ 是中斷除能函數(shù)。其聲明如下:

void HAL_NVIC_disableIRQ(IRQn_Type IRQn);

? 函數(shù)描述:用于中斷除能。

?函數(shù)形參:形參 IRQn 是中斷號(hào),可以選擇范圍:IRQn_Type 定義的枚舉類型,定義在 W55MH32 xe.h。

?函數(shù)返回值:無(wú)

5. HAL_NVIC_SystemReset 函數(shù)

HAL_NVIC_SystemReset 是系統(tǒng)復(fù)位函數(shù)。其聲明如下:

void HAL_NVIC_SystemReset(void);

?函數(shù)描述:用于軟件復(fù)位系統(tǒng)。

?函數(shù)形參:無(wú)形參

?函數(shù)返回值:無(wú)

其他的 NVIC 函數(shù)用得較少,我們就不一一列出來(lái)了。NVIC 的介紹就到這,下面介紹外部中斷。

2 EXTI概述

2.1 EXTI簡(jiǎn)介

EXTI 即是外部中斷和事件控制器,它是由 20 個(gè)產(chǎn)生事件/中斷請(qǐng)求的邊沿檢測(cè)器組成。每一條輸入線都可以獨(dú)立地配置輸入類型(脈沖或掛起)和對(duì)應(yīng)的觸發(fā)事件(上升沿或下降沿或者雙邊沿都觸發(fā))。每個(gè)輸入線都可以獨(dú)立地被屏蔽。掛起寄存器保持著狀態(tài)線的中斷求。EXTI 的功能框圖是最直接把有關(guān) EXTI 的知識(shí)點(diǎn)連接起來(lái)的圖,掌握了該圖的來(lái)龍去脈,就會(huì)對(duì) EXTI 有了一個(gè)整體熟悉,編程時(shí)候可以得心應(yīng)手。

2.2 EXTI功能框圖解析

EXTI 的功能框圖如下圖所示:

wKgZPGg0JHKARQ7VAAFvPiloguQ794.png

從 EXTI 功能框圖可以看到有兩條主線,一條是由輸入線到 NVIC 中斷控制器,一條是由輸入線到脈沖發(fā)生器。這就恰恰是 EXTI 的兩大部分功能,產(chǎn)生中斷與產(chǎn)生事件,兩者從硬件上就存在不同。

下面讓我們看一下 EXTI 功能框圖的產(chǎn)生中斷的線路,最終信號(hào)是流入 NVIC 控制器中。輸入線是線路的信息輸入端,它可以通過(guò)配置寄存器設(shè)置為任何一個(gè) GPIO 口,或者是一些外設(shè)的事件。輸入線一般都是存在電平變化的信號(hào)。

標(biāo)號(hào)①是一個(gè)邊沿檢測(cè)電路,包括邊沿檢測(cè)電路,上升沿觸發(fā)選擇寄存器(EXTI_RTSR)和下降沿觸發(fā)選擇寄存器(EXTI_FTSR)。邊沿檢測(cè)電路以輸入線作為信號(hào)輸入端,如果檢測(cè)到有邊沿跳變就輸出有效信號(hào)‘1’到標(biāo)號(hào)②部分電路,否則輸入無(wú)效信號(hào)‘0’。邊沿跳變的標(biāo)準(zhǔn)在于開(kāi)始的時(shí)候?qū)τ谏仙赜|發(fā)選擇寄存器或下降沿觸發(fā)選擇寄存器對(duì)應(yīng)位的設(shè)置。

標(biāo)號(hào)②是一個(gè)或門(mén)電路,它的兩個(gè)信號(hào)輸入端分別是軟件中斷事件寄存器(EXTI_SWIER)和邊沿檢測(cè)電路的輸入信號(hào)。或門(mén)電路只要輸入端有信號(hào)‘1’,就會(huì)輸出‘1’,所以就會(huì)輸出‘1’到標(biāo)號(hào)③電路和標(biāo)號(hào)④電路。通過(guò)對(duì)軟件中斷事件寄存器的讀寫(xiě)操作就可以啟動(dòng)中斷/事件線,即相當(dāng)于輸出有效信號(hào)‘1’到或門(mén)電路輸入端。

標(biāo)號(hào)③是一個(gè)與門(mén)電路,它的兩個(gè)信號(hào)輸入端分別是中斷屏蔽寄存器(EXTI_IMR)和標(biāo)號(hào)②電路輸出信號(hào)。與門(mén)電路要求輸入都為‘1’才輸出‘1’,這樣子的情況下,如果中斷屏蔽寄存器(EXTI_IMR)設(shè)置為 0 時(shí),不管從標(biāo)號(hào)②電路輸出的信號(hào)特性如何,最終標(biāo)號(hào)③電路輸出的信號(hào)都是 0;假如中斷屏蔽寄存器(EXTI_IMR)設(shè)置為 1 時(shí),最終標(biāo)號(hào)③電路輸出的信號(hào)才由標(biāo)號(hào)②電路輸出信號(hào)決定,這樣子就可以簡(jiǎn)單控制 EXTI_IMR 來(lái)實(shí)現(xiàn)中斷的目的。標(biāo)號(hào)④電路輸出‘1’就會(huì)把請(qǐng)求掛起寄存器(EXTI_PR)對(duì)應(yīng)位置 1。最后,請(qǐng)求掛起寄存器(EXTI_PR)的內(nèi)容就輸出到 NVIC 內(nèi),實(shí)現(xiàn)系統(tǒng)中斷事件的控制。接下來(lái)我們看看 EXTI 功能框圖的產(chǎn)生事件的線路。產(chǎn)生事件線路是從標(biāo)號(hào)②之后與中斷線路有所不用,之前的線路都是共用的。

標(biāo)號(hào)④是一個(gè)與門(mén),輸入端來(lái)自標(biāo)號(hào)②電路以及來(lái)自于事件屏蔽寄存器(EXTI_EMR)。如果 EXTI_EMR 寄存器設(shè)置為 0,那不管標(biāo)號(hào)②電路輸出的信號(hào)是‘0’還是‘1’,最終標(biāo)號(hào)④輸出的是‘0’;如果 EXTI_EMR 寄存器設(shè)置為 1,最終標(biāo)號(hào)④電路輸出信號(hào)就由標(biāo)號(hào)③電路輸出的信號(hào)決定,這樣子就可以簡(jiǎn)單的控制 EXTI_EMR 來(lái)實(shí)現(xiàn)是否產(chǎn)生事件的目的。標(biāo)號(hào)④電路輸出有效信號(hào) 1 就會(huì)使脈沖發(fā)生器電路產(chǎn)生一個(gè)脈沖,而無(wú)效信號(hào)就不會(huì)使其產(chǎn)生脈沖信號(hào)。脈沖信號(hào)產(chǎn)生可以給其他外設(shè)電路使用,例如定時(shí)器,模擬數(shù)字轉(zhuǎn)換器等,這樣的脈沖信號(hào)一般用來(lái)觸發(fā) TIM 或者 ADC 開(kāi)始轉(zhuǎn)換。產(chǎn)生中斷線路目的使把輸入信號(hào)輸入到 NVIC,進(jìn)一步運(yùn)行中斷服務(wù)函數(shù),實(shí)現(xiàn)功能。而產(chǎn)生事件線路目的是傳輸一個(gè)脈沖信號(hào)給其他外設(shè)使用,屬于硬件級(jí)功能。EXTI 支持 19 個(gè)外部中斷/事件請(qǐng)求,這些都是信息輸入端,也就是上面提及到了輸入線,具體如下:

?EXTI 線 0~15:對(duì)應(yīng)外部 IO 口的輸入中斷

?EXTI 線 16:連接到 PVD 輸出

?EXTI 線 17:連接到 RTC 鬧鐘事件

?EXTI 線 18:連接到 USB 喚醒事件

?EXTI 線 19:連接到以太網(wǎng)喚醒事件

從上面可以看出,W55MH32 供給 IO 口使用的中斷線只有 16 個(gè),但是 W55MH32 的 IO 口卻遠(yuǎn)遠(yuǎn)不止 16 個(gè),所以W55MH32把 GPIO 管腳 GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G)分別對(duì)應(yīng)中斷線 0~15。這樣子每個(gè)中斷線對(duì)應(yīng)了最多 9 個(gè) IO 口,以線 0 為例:它對(duì)應(yīng)了 GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、GPIOF.0 和 GPIOG.0。而中斷線每次只能連接到 1個(gè) IO 口上,這樣就需要通過(guò)配置決定對(duì)應(yīng)的中斷線配置到哪個(gè) GPIO 上了。GPIO 和外部中斷線映射關(guān)系是在寄存器 AFIO_EXTICR1 ~ AFIO_EXTICR4 中配置的。

wKgZPGg0JHOATlTXAARKjgMvjOw550.png

AFIO_EXTICR1 寄存器配置 EXTI0 到 EXTI3 線,對(duì)應(yīng)的外部中斷引腳有 PAx 到 PGx,x=0 到 3。AFIO_EXTICR2 寄存器配置 EXTI4 到 EXTI7 線,對(duì)應(yīng)的外部中斷引腳有 PAx 到PGx,x=4 到 7。AFIO_EXTICR3 寄存器配置 EXTI8 到 EXTI11 線,對(duì)應(yīng)的外部中斷引腳有PAx 到 PGx,x=8 到 11。AFIO_EXTICR4 寄存器配置 EXTI12 到 EXTI15 線,對(duì)應(yīng)的外部中斷引腳有 PAx 到 PGx,x=12 到 15。另外要注意的是,我們配置 AFIO 相關(guān)寄存器前,還需要打開(kāi) AFIO 時(shí)鐘。

審核編輯 黃宇

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

    關(guān)注

    31

    文章

    5421

    瀏覽量

    123308
  • NVIC
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    11944
  • 外部中斷
    +關(guān)注

    關(guān)注

    1

    文章

    133

    瀏覽量

    16100
收藏 人收藏

    評(píng)論

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

    數(shù)據(jù)采集光盤(pán)實(shí)例第一第六章

    數(shù)據(jù)采集光盤(pán)實(shí)例第一第六章
    發(fā)表于 06-28 21:02

    數(shù)據(jù)采集光盤(pán)實(shí)例第六章至第十二

    數(shù)據(jù)采集光盤(pán)實(shí)例第六章至第十二
    發(fā)表于 06-28 21:17

    求王慶利《單片機(jī)設(shè)計(jì)標(biāo)準(zhǔn)教程》第六章的一個(gè)函數(shù)!!

    在做一個(gè)設(shè)計(jì),急需《單片機(jī)設(shè)計(jì)標(biāo)準(zhǔn)教程》里第六章 的I2C總線函數(shù) #include“IIClib.h” 誰(shuí)有幫忙拍張圖片傳一下
    發(fā)表于 05-05 21:20

    《測(cè)控電路》習(xí)題完整參考答案(第六章

    《測(cè)控電路》習(xí)題完整參考答案(第六章
    發(fā)表于 05-07 11:36

    脈沖波形發(fā)生器與整形電路 第六章

    脈沖波形發(fā)生器與整形電路 第六章 555定時(shí)器及其應(yīng)用集成和其它單穩(wěn)態(tài)觸發(fā)器集成施密特觸發(fā)器其它多諧振蕩器電路脈沖產(chǎn)生與整形電路的應(yīng)用
    發(fā)表于 04-22 14:05 ?42次下載

    三相電路(第六章)

    三相電路(第六章) 一、 三相電源及其連接若三個(gè)電壓源的電壓uA,uB,uC的最大值相等,頻率相同,相位互差120°,則此三個(gè)電壓源的組合稱為對(duì)稱
    發(fā)表于 05-23 15:17 ?38次下載

    高頻電子線路第六章答案

    高頻電子線路第六章答案.
    發(fā)表于 06-05 10:41 ?41次下載

    PCB布線設(shè)計(jì)經(jīng)驗(yàn)談附原理圖(第六章)

    PCB布線設(shè)計(jì)經(jīng)驗(yàn)談附原理圖(第六章)   對(duì)于12位傳感系統(tǒng)的布線,應(yīng)用的電路是一負(fù)載單元電路,該電路可精確測(cè)量傳感器上施加的
    發(fā)表于 10-28 09:30 ?1114次閱讀
    PCB布線設(shè)計(jì)經(jīng)驗(yàn)談附原理圖(<b class='flag-5'>第六章</b>)

    《測(cè)控電路》習(xí)題完整參考答案(第六章

    《測(cè)控電路》習(xí)題完整參考答案(第六章
    發(fā)表于 02-07 15:17 ?0次下載

    數(shù)字信號(hào)處理 第六章

    數(shù)字信號(hào)處理 第六章
    發(fā)表于 10-19 09:34 ?4次下載
    數(shù)字信號(hào)處理 <b class='flag-5'>第六章</b>

    靜噪基礎(chǔ)第六章_EMI靜噪濾波器

    靜噪基礎(chǔ)第六章,EMI靜噪濾波器
    發(fā)表于 01-24 16:25 ?4次下載

    STM8S BLDC電機(jī)第六章工程的stm8選項(xiàng)字節(jié)配置

    STM8S BLDC電機(jī)第六章工程的stm8選項(xiàng)字節(jié)配置
    發(fā)表于 03-05 15:07 ?8次下載

    電力系統(tǒng)繼電保護(hù)第六章-變壓器保護(hù)(課件)下載.ppt

    繼電保護(hù)第六章-變壓器保護(hù)(課件)
    發(fā)表于 04-28 09:45 ?0次下載
    電力系統(tǒng)繼電保護(hù)<b class='flag-5'>第六章</b>-變壓器保護(hù)(課件)下載.ppt

    計(jì)算機(jī)網(wǎng)絡(luò)第六章應(yīng)用層資源下載

    計(jì)算機(jī)網(wǎng)絡(luò)第六章應(yīng)用層資源下載
    發(fā)表于 05-17 10:25 ?0次下載

    HT合泰單片機(jī)入門(mén)教程(第六章 時(shí)基中斷

    定時(shí)器第五 PWM第六章 時(shí)基中斷前言當(dāng)我們只是想固定頻率的中斷、或者想對(duì)整個(gè)系統(tǒng)運(yùn)行進(jìn)行計(jì)數(shù)和計(jì)時(shí),又或者定時(shí)器不夠用。那該怎么辦呢?這一
    發(fā)表于 11-24 16:21 ?7次下載
    HT合泰單片機(jī)入門(mén)教程(<b class='flag-5'>第六章</b> 時(shí)基<b class='flag-5'>中斷</b>)