嵌入式系統(tǒng)原理及應(yīng)用-基于STM32和RT-Thread 課件 第3、4章 通用輸入輸出、外部中斷_第1頁
嵌入式系統(tǒng)原理及應(yīng)用-基于STM32和RT-Thread 課件 第3、4章 通用輸入輸出、外部中斷_第2頁
嵌入式系統(tǒng)原理及應(yīng)用-基于STM32和RT-Thread 課件 第3、4章 通用輸入輸出、外部中斷_第3頁
嵌入式系統(tǒng)原理及應(yīng)用-基于STM32和RT-Thread 課件 第3、4章 通用輸入輸出、外部中斷_第4頁
嵌入式系統(tǒng)原理及應(yīng)用-基于STM32和RT-Thread 課件 第3、4章 通用輸入輸出、外部中斷_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

嵌入式系統(tǒng)原理及應(yīng)用第3章通用輸入輸出1GPIO概念及應(yīng)用場景2IO內(nèi)部電路結(jié)構(gòu)及工作模式3GPIO應(yīng)用實(shí)例45課后作業(yè)本章總結(jié)GPIO概念GPIO應(yīng)用場景3.1GPIO概念及應(yīng)用場景本節(jié)小結(jié)3.1.1GPIO概念輸入輸出(IO,Input/Output)是微控制器最基本的外設(shè)功能之一。GPIO(GeneralPurposeInputOutput)即通用功能輸入輸出,是相對于復(fù)用功能輸入輸出AFIO(AlternateFunctionInputOutput)而言的。GPIO一般用于輸出開關(guān)信號(高電平/低電平或1/0),接受開關(guān)信號輸入。AFIO是IO的第二功能,根據(jù)功能不同其輸入輸出遵守一定的協(xié)議,如作為串口收發(fā)時,引腳電平根據(jù)收發(fā)數(shù)據(jù)變化,作為模擬輸入時,引腳接受的為實(shí)際電壓。3.1.1GPIO概念根據(jù)型號不同,STM32FL431處理器上IO端口和引腳多少不同。64引腳的STM32L431Rx只有A、B、C、D四個IO端口,其中A、B和C端口,每個端口有16個IO引腳,D端口只有1個IO引腳,共49個IO引腳。而100引腳的STM32L431Vx有A、B、C、D和E五個IO端口,每個端口有16個IO引腳,共80個IO引腳。每個引腳都可以用作GPIO,也可用作AFIO。3.1.2GPIO應(yīng)用場景監(jiān)測開關(guān)信號控制開關(guān)設(shè)備1.監(jiān)測開關(guān)信號3.1.2GPIO應(yīng)用場景開關(guān)信號即只有開和關(guān)兩種狀態(tài)的信號,如果開為高(低)電平,則關(guān)為低(高)電平,GPIO通過讀引腳電平狀態(tài)實(shí)現(xiàn)開關(guān)信號的監(jiān)測,當(dāng)讀到引腳狀態(tài)為1時,表明引腳輸入為高電平,此時可根據(jù)電路原理判斷輸入信號的開關(guān)狀態(tài)。GPIO搭配適當(dāng)電路可監(jiān)測任意開關(guān)信號,包括無源和有源開關(guān)信號。1.監(jiān)測開關(guān)信號3.1.2GPIO應(yīng)用場景(1)無源開關(guān)信號無源開關(guān)信號指傳感器輸出本身不具備高低電平,通常有公共端(COM)、常開(NO)和(或)常閉(NC)等連接線,正常狀態(tài)時,NO和COM斷路,NC和COM短路,當(dāng)傳感器檢測到異常時,NO和COM短路,NC和COM斷路。常見的無源信號有各種按鍵、接近開關(guān)、限位開關(guān)、液位開關(guān)、水浸傳感器輸出、溫度傳感器輸出、繼電器輸出等。1.監(jiān)測開關(guān)信號3.1.2GPIO應(yīng)用場景(2)有源開關(guān)信號有源開關(guān)信號指傳感器輸出本身具備高低電平,相應(yīng)傳感器通常包含電源正極(VCC)、電源負(fù)極(GND)和輸出(OUT),如果正常狀態(tài)時,OUT輸出高(低)電平,則異常狀態(tài)時OUT輸出低(高)電平。由于有源信號輸出具有極性,其輸出高電平電壓一般為5V、12V或24V,超出了MCU引腳承受能力,因此不能直接接到MCU的引腳,可采用光電耦合器進(jìn)行隔離。常見的有源信號有霍爾傳感器輸出、紅外傳感器輸出、火災(zāi)報警器輸出等。2.控制開關(guān)設(shè)備3.1.2GPIO應(yīng)用場景GPIO通過設(shè)置引腳電平高低實(shí)現(xiàn)外部設(shè)備或器件的開關(guān)控制,搭配適當(dāng)電路可控制任意設(shè)備開關(guān),控控制方式需結(jié)合原理圖實(shí)現(xiàn)。本節(jié)小結(jié)掌握GPIO應(yīng)用場景;內(nèi)部電路結(jié)構(gòu)工作模式3.2IO內(nèi)部電路結(jié)構(gòu)及工作模式本節(jié)小結(jié)3.2.1IO內(nèi)部電路結(jié)構(gòu)3.2.1IO內(nèi)部電路結(jié)構(gòu)1.保護(hù)二極管(鉗位二極管)兩個保護(hù)二極管可以防止引腳輸入電壓過高或過低,當(dāng)引腳電壓高于VDD時,上方的二極管導(dǎo)通,當(dāng)引腳電壓低于VSS時,下方的二極管導(dǎo)通,將輸入電壓鉗位在VCC和GND之間,防止不正常電壓輸入芯片導(dǎo)致芯片燒毀。3.2.1IO內(nèi)部電路結(jié)構(gòu)2.上拉電阻和下拉電阻通過配置上拉電阻和下拉電阻的開關(guān),可以控制引腳默認(rèn)的輸入狀態(tài)。開啟上拉電阻時,引腳默認(rèn)輸入電壓為高電平,稱為上拉輸入模式;開啟下拉時,引腳默認(rèn)輸入電壓為低電平,稱為下拉輸入模式;兩者都不開啟時,默認(rèn)輸入電壓不確定,直接用電壓表測量其引腳電壓為1點(diǎn)幾伏,稱為浮空輸入模式。引腳作為輸入時,一般要根據(jù)原理圖設(shè)置為“上拉輸入模式”或“下拉輸入模式”,使它有默認(rèn)狀態(tài)。3.2.1IO內(nèi)部電路結(jié)構(gòu)3.TTL施密特觸發(fā)器施密特觸發(fā)器(Schmidttrigger)是一種由電位觸發(fā)的觸發(fā)器(一般觸發(fā)器由時鐘沿觸發(fā)),它在輸入電壓遞減和遞增兩種不同變化方向有不同的閾值電壓,因此具有較強(qiáng)的抗干擾能力。施密特觸發(fā)器分為正向施密特觸發(fā)器和反向施密特觸發(fā)器,其符號及輸入輸出特性如圖3-3所示,橫軸為輸入,縱軸為輸出,STM32中采用的是正向施密特觸發(fā)器,對于正向施密特觸發(fā)器,當(dāng)輸入遞減至低于輸入低閾值(VIL)時,輸出變?yōu)榈碗娖剑╒OL),當(dāng)輸入遞增至高于輸入高閾值(VIH)時,輸出變?yōu)楦唠娖健?.2.1IO內(nèi)部電路結(jié)構(gòu)3.TTL施密特觸發(fā)器3.2.1IO內(nèi)部電路結(jié)構(gòu)4.輸入數(shù)據(jù)寄存器寄存器是MCU內(nèi)部用來存放指令和數(shù)據(jù)的有限存儲容量的高速存儲部件,其本質(zhì)是一種只包含存儲電路(由鎖存器或觸發(fā)器構(gòu)成)的時序邏輯電路。由于一個鎖存器或觸發(fā)器能存儲1位二進(jìn)制數(shù),因此N位寄存器是由N個鎖存器或觸發(fā)器構(gòu)成的。3.2.1IO內(nèi)部電路結(jié)構(gòu)4.輸入數(shù)據(jù)寄存器輸入數(shù)據(jù)寄存器是MCU用來保存輸入結(jié)果的寄存器,STM32每個端口都對應(yīng)有一個獨(dú)立的輸入寄存器,輸入寄存器為32位,但只用到低16位存儲對應(yīng)16個引腳的輸入狀態(tài),高16位保留。引腳輸入信號經(jīng)上拉電阻或下拉電阻后,輸入至TTL施密特觸發(fā)器,模擬信號被施密特觸發(fā)器轉(zhuǎn)化為高電平或低電平,然后以1(高電平)或0(低電平)的數(shù)字信號形式存儲至輸入數(shù)據(jù)寄存器的相應(yīng)位,讀輸入數(shù)據(jù)寄存器即可獲取引腳的輸入電平狀態(tài)。3.2.1IO內(nèi)部電路結(jié)構(gòu)5.置位/復(fù)位寄存器置位/復(fù)位寄存器為32位寄存器,直接與輸出數(shù)據(jù)寄存器相連,用于設(shè)置數(shù)據(jù)寄存器每一位的值。置位/復(fù)位寄存器每兩位對應(yīng)輸出數(shù)據(jù)寄存器的一位,如置位/復(fù)位的第0位設(shè)置為1,則輸出數(shù)據(jù)寄存器的第0位被設(shè)置為1,置位/復(fù)位的第16位設(shè)置為1,則輸出數(shù)據(jù)寄存器的第0位被設(shè)置為0。6.輸出數(shù)據(jù)寄存器端口被設(shè)置成輸出模式后,可以從輸出數(shù)據(jù)寄存器相應(yīng)位讀寫數(shù)據(jù)來判斷和控制IO口的輸出狀態(tài),與輸入數(shù)據(jù)寄存器一樣,輸出數(shù)據(jù)寄存器為32位,但只用到低16位,且只能以16位的方式讀取和設(shè)置,如要單獨(dú)設(shè)置某一位需通過置位/復(fù)位寄存器。3.2.1IO內(nèi)部電路結(jié)構(gòu)7.P-MOS管和N-MOS管P-MOS管和N-MOS管組成的單元電路使IO具有了“推挽輸出”和“開漏輸出”兩種輸出模式。當(dāng)IO設(shè)置為推挽輸出模式時,如果設(shè)置輸出數(shù)據(jù)寄存器對應(yīng)位為1,則上方的P-MOS導(dǎo)通,下方的N-MOS截止,對外輸出高電平(3.3V),反之,如果設(shè)置輸出數(shù)據(jù)寄存器對應(yīng)位為0,則上方的P-MOS截止,下方的N-MOS導(dǎo)通,對外輸出低電平(0V)。3.2.1IO內(nèi)部電路結(jié)構(gòu)7.P-MOS管和N-MOS管P-MOS管和N-MOS管組成的單元電路使IO具有了“推挽輸出”和“開漏輸出”兩種輸出模式。當(dāng)IO設(shè)置為開漏輸出模式時,則上方的P-MOS漏極開路,即P-MOS永遠(yuǎn)截止,此時如果設(shè)置輸出數(shù)據(jù)寄存器對應(yīng)位為1,P-MOS和N-MOS均截止,引腳對外呈現(xiàn)高阻態(tài),若想讓引腳輸出高電平,則引腳必須外接上拉電阻,由上拉電阻提供高電平。如果設(shè)置輸出數(shù)據(jù)寄存器對應(yīng)位為0,則P-MOS截止,N-MOS導(dǎo)通,對外輸出低電平(0V)。3.2.2IO工作模式8種模式:上拉輸入下拉輸入浮空輸入模擬輸入推挽輸出開漏輸出復(fù)用推挽輸出復(fù)用開漏輸出本節(jié)小結(jié)1.理解STM32內(nèi)部電路原理;2.掌握IO工作模式。狀態(tài)指示燈按鍵控制LED3.3應(yīng)用實(shí)例本節(jié)小結(jié)3.3.1狀態(tài)指示燈1.電路原理及需求分析嵌入式系統(tǒng)中通常采用LED指示系統(tǒng)工作狀態(tài),LED相關(guān)電路原理圖如圖所示,LED陽極接高電平,陰極經(jīng)限流電阻后接GPIO引腳,引腳輸出高電平LED熄滅,引腳輸出低電平,LED點(diǎn)亮。上電或復(fù)位后,系統(tǒng)進(jìn)行初始化,初始化完成后,LED1先以0.5s的間隔閃爍3次,然后進(jìn)入正常運(yùn)行狀態(tài),LED1以1s的間隔閃爍。3.3.1狀態(tài)指示燈2.實(shí)現(xiàn)過程(1)創(chuàng)建工程及最小系統(tǒng)配置。(2)引腳功能配置。(3)編程實(shí)現(xiàn)工程。3.3.2按鍵控制LED1.電路原理及需求分析采用按鍵控制LED,按鍵和LED相關(guān)電路原理圖如圖所示,按鍵一端接高電平,另一端經(jīng)限流電阻接GPIO引腳,下方電容和電阻構(gòu)成硬件消抖電路,按鍵松開時讀取引腳為低電平,按鍵按下時讀取引腳為高電平。3.3.2按鍵控制LED1.電路原理及需求分析(1)LED1(PA0)用于指示系統(tǒng)工作狀態(tài)。(2)按鍵K1通過輪詢的方式控制LED2,每按一次K1,LED2狀態(tài)發(fā)生一次改變。3.3.2按鍵控制LED2.實(shí)現(xiàn)過程(1)創(chuàng)建工程及最小系統(tǒng)配置。(2)引腳功能配置。(3)編程實(shí)現(xiàn)工程。本節(jié)小結(jié)1.掌握工程創(chuàng)建及最小系統(tǒng)配置;2.掌握GPIO輸出應(yīng)用方法;3.掌握GPIO輸入應(yīng)用方法。3.4本章總結(jié)3.5課后作業(yè)1.繪制本章內(nèi)容思維導(dǎo)圖。2.實(shí)現(xiàn)兩個實(shí)例功能,并總結(jié)實(shí)現(xiàn)過程。謝謝欣賞THEEND嵌入式系統(tǒng)原理及應(yīng)用第4章外部中斷1中斷基本概念2STM32外部中斷3EXTI應(yīng)用實(shí)例45課后作業(yè)本章總結(jié)HAL_GPIO_ReadPinHAL_GPIO_TogglePinHAL_GPIO_WritePin中斷概念本節(jié)小結(jié)4.1中斷基本概念中斷概念1.中斷中斷:MCU執(zhí)行主程序時,出現(xiàn)了某些意外或緊急事件,需要MCU緊急處理,此時主程序被打斷,MCU轉(zhuǎn)而處理緊急事件,處理完畢后再返回繼續(xù)執(zhí)行主程序的過程。中斷服務(wù)程序通常為一個函數(shù),該函數(shù)實(shí)現(xiàn)緊急事件處理功能。中斷源16+67斷點(diǎn)程序指針:指向當(dāng)前主程序運(yùn)行指令的下一條指令中斷概念1.中斷中斷中斷處理刻不容緩大局意識中斷概念2.中斷向量

中斷服務(wù)程序在內(nèi)存中的入口地址稱為中斷向量,把系統(tǒng)中所有中斷向量集中起來放到存儲器的某一區(qū)域內(nèi),這個存儲中斷向量的存儲區(qū)域稱為中斷向量表。3.嵌套向量中斷控制器嵌套向量中斷控制器(NVIC,NestedVectoredInterruptController)是STM32中斷系統(tǒng)的核心,其作用是為所有中斷提供優(yōu)先級,實(shí)現(xiàn)中斷嵌套。中斷概念4.中斷優(yōu)先級中斷優(yōu)先級表示中斷的重要程度,STM32具有兩類優(yōu)先級,即搶占優(yōu)先級(preemptionpriority)和響應(yīng)優(yōu)先級(subpriority),可通過中斷優(yōu)先級寄存器(NVIC_IPR)進(jìn)行分組配置。中斷優(yōu)先級寄存器采用8位表示優(yōu)先級,理論上可以配置256個中斷優(yōu)先級,實(shí)際上STM32只用了高4位,并可通過編程將這4位分組為搶占優(yōu)先級和響應(yīng)優(yōu)先級。中斷優(yōu)先級用數(shù)字表示,數(shù)字越小,優(yōu)先級越高,中斷分組默認(rèn)配置為第4組。判斷中斷優(yōu)先級時先判斷搶占優(yōu)先級,搶占優(yōu)先級高,則該中斷優(yōu)先級高。如果搶占優(yōu)先級相同,則根據(jù)響應(yīng)優(yōu)先級判斷,如果響應(yīng)優(yōu)先級也相同,則根據(jù)中斷通道向量地址判斷。中斷概念4.中斷優(yōu)先級優(yōu)先級分組搶占優(yōu)先級響應(yīng)優(yōu)先級第0組:NVIC_PriorityGroup_0無4位/16級(0~15)第1組:NVIC_PriorityGroup_11位/2級(0~1)3位/8級(0~7)第2組:NVIC_PriorityGroup_22位/4級(0~3)2位/4級(0~3)第3組:NVIC_PriorityGroup_33位/8級(0~7)1位/2級(0~1)第4組:NVIC_PriorityGroup_44位/16級(0~15)無中斷概念5.中斷執(zhí)行順序

多個中斷發(fā)生時,MCU根據(jù)中斷優(yōu)先級確定中斷執(zhí)行順序,中斷執(zhí)行遵循如下規(guī)則:

(1)允許中斷嵌套,即優(yōu)先執(zhí)行搶占優(yōu)先級高的中斷。如執(zhí)行中斷A時,發(fā)生了搶占優(yōu)先級更高的中斷B,則暫停中斷A處理過程轉(zhuǎn)去處理中斷B,處理完中斷B后再繼續(xù)處理中斷A,這個過程稱為中斷嵌套。

中斷嵌套只與搶占優(yōu)先級有關(guān),搶占優(yōu)先級不同,才能發(fā)生中斷嵌套。

(2)當(dāng)搶占優(yōu)先級相同時,根據(jù)中斷發(fā)生順序執(zhí)行,哪個中斷先發(fā)生,則先執(zhí)行哪個中斷,如果幾個搶占優(yōu)先級相同的中斷同時發(fā)生,則優(yōu)先執(zhí)行響應(yīng)優(yōu)先級高的中斷。中斷概念5.中斷執(zhí)行順序有三個中斷A、B、C和D,搶占優(yōu)先級和響應(yīng)優(yōu)先級分別為(3,1)、(2,2)、(1,3)和(2,3),則根據(jù)中斷發(fā)生順序有以下幾種執(zhí)行情況:(1)當(dāng)4個中斷同時發(fā)生時,中斷執(zhí)行順序?yàn)镃、B、D、A。(2)執(zhí)行中斷A時,發(fā)生了中斷B,由于中斷B的搶占優(yōu)先級更高,因此可以打斷中斷A,即發(fā)生中斷嵌套。(3)執(zhí)行中斷B時,發(fā)生了中斷D,由于中斷B和中斷D的響應(yīng)優(yōu)先級相同,不會產(chǎn)生嵌套,中斷B執(zhí)行完后,再執(zhí)行中斷D。如果中斷B和中斷D同時發(fā)生,由于中斷B的響應(yīng)優(yōu)先級更高,因此先執(zhí)行中斷B。本節(jié)小結(jié)理解中斷概念;掌握中斷優(yōu)先級分組;理解中斷執(zhí)行順序。EXTI主要特征EXTI內(nèi)部電路4.2STM32外部中斷EXTI應(yīng)用步驟本節(jié)小結(jié)4.2.1EXTI主要特征STM32外部中斷是通常指引腳電平變化引起的中斷,由NVIC和外部中斷事件控制器(EXTI,ExtendedInterruptsandEventsController)控制。EXTI負(fù)責(zé)管理所有的外部中斷和內(nèi)部異步事件,并產(chǎn)生中斷請求。STM32外部中斷的主要特征如下:(1)可產(chǎn)生最多39和事件/中斷請求,包括25個可配置中斷和14個直接中斷;(2)每個事件/中斷具有獨(dú)立的屏蔽控制;(3)可配置中斷包括IO引腳中斷和部分其它外設(shè)中斷,支持上升沿或下降沿觸發(fā),并且具有專用的狀態(tài)位用于指示中斷源。(4)直接中斷主要是部分外設(shè)產(chǎn)生的喚醒事件,用于喚醒設(shè)備,其狀態(tài)標(biāo)志由相應(yīng)外設(shè)提供。(5)所有中斷可通過軟件進(jìn)行模擬。4.2.2EXTI內(nèi)部電路4.2.2EXTI內(nèi)部電路EXTI之所有能夠?qū)崿F(xiàn)中斷控制,是因?yàn)槠渚哂袊?yán)謹(jǐn)合理的硬件電路,以STM32L4系列為例,其EXTI內(nèi)部電路結(jié)構(gòu)如圖4-2所示,主要由邊沿檢測電路、下降沿觸發(fā)選擇寄存器、上升沿觸發(fā)選擇寄存器、中斷屏蔽寄存器、掛起請求寄存器等構(gòu)成。下面以GPIO中斷為例講解其工作原理,欲產(chǎn)生GPIO中斷,首先應(yīng)配置下降沿觸發(fā)選擇寄存器或(和)上升沿觸發(fā)選擇寄存器,當(dāng)其相應(yīng)位配置為1時,邊沿檢測電路即可檢測到電平變化;然后配置中斷屏蔽寄存器相應(yīng)位為1,當(dāng)邊沿檢測電路檢測到電平變化時,即可將掛起請求寄存器相應(yīng)位置1,進(jìn)而引發(fā)中斷,CPU響應(yīng)該中斷后即可執(zhí)行響應(yīng)的中斷服務(wù)程序。綜上所述,中斷提供了一個完全由硬件自動完成的程序執(zhí)行通道,不要軟件的參與,降低了CPU的負(fù)荷,提高了響應(yīng)速度,是利用硬件提升MCU處理事件能力的有效方法。4.2.3EXTI應(yīng)用步驟EXTI是最常用的功能之一,主要用于開關(guān)量監(jiān)測,采用STM32CubeIDE進(jìn)行開發(fā)時,EXTI的配置主要包括引腳功能選擇、工作模式詳細(xì)配置、NVIC設(shè)置和中斷服務(wù)程序?qū)崿F(xiàn)四大步驟。1.引腳功能選擇以引腳PC0為例,首先選中PC0,然后設(shè)置其為GPIO_EXTI0。2.工作模式詳細(xì)配置4.2.3EXTI應(yīng)用步驟EXTI是最常用的功能之一,主要用于開關(guān)量監(jiān)測,采用STM32CubeIDE進(jìn)行開發(fā)時,EXTI的配置主要包括引腳功能選擇、工作模式詳細(xì)配置、NVIC設(shè)置和中斷服務(wù)程序?qū)崿F(xiàn)四大步驟。3.NVIC設(shè)置4.中斷服務(wù)程序?qū)崿F(xiàn)voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin){ /*判斷引腳*/ if(GPIO_Pin==User_Label) { /*具體功能實(shí)現(xiàn)*/ }}本節(jié)小結(jié)1.理解EXTI內(nèi)部電路原理;2.掌握EXTI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論