微機原理與嵌入式接口技術(shù)課件:接口技術(shù)_第1頁
微機原理與嵌入式接口技術(shù)課件:接口技術(shù)_第2頁
微機原理與嵌入式接口技術(shù)課件:接口技術(shù)_第3頁
微機原理與嵌入式接口技術(shù)課件:接口技術(shù)_第4頁
微機原理與嵌入式接口技術(shù)課件:接口技術(shù)_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

接口技術(shù)4.1I/O接口概述4.2CUP與外設(shè)之間的數(shù)據(jù)傳送方式4.3并行接口基本電路4.4STM32的GPIO4.5GPIO的應(yīng)用組習題4

本章要點

☆計算機I/O接口的基本概念

☆CUP與外設(shè)之間的數(shù)據(jù)傳輸方式

☆并行接口的幾種基本電路

☆STM32的GPIO

☆基于匯編、C語言寄存器、C語言庫函數(shù)實現(xiàn)的按鍵控制LED燈實例

4.1I/O接口概述

4.1.1I/O接口電路的作用1.為數(shù)據(jù)提供鎖存和緩沖功能在計算機系統(tǒng)中,CUP的運行速度很高,而外設(shè)的速度往往較低,即使是快速的外部設(shè)備,其工作速度也遠遠不及CUP的工作速度,一般而言,CUP的工作速度是外設(shè)的幾十倍乃至幾千倍。

2.實現(xiàn)信號變換功能

計算機內(nèi)部的信號都是并行的、數(shù)字的,采用TTL電平標準,而外設(shè)有串行的、模擬的,信號電平也千差萬別,要實現(xiàn)這種不同信號的連接,必須通過I/O接口電路進行轉(zhuǎn)換。

3.提供外設(shè)控制、監(jiān)測和管理功能

I/O接口電路接收來自CUP的控制信號,實現(xiàn)對外設(shè)的控制和管理。外設(shè)的工作狀態(tài)也可以通過I/O接口送回CUP,確保操作同步。為實現(xiàn)CUP與外設(shè)并行工作,專用的I/O接口可以管理來自外設(shè)的中斷請求,以中斷方式進行輸入/

輸出,大大提高CUP的利用率。

4.1.2接口和端口

I/O接口通常是指連接CUP與外設(shè)的集成芯片,不同的外設(shè)需要不同的I/O接口。一個I/O接口芯片往往有若干個I/O端口,根據(jù)CUP與外設(shè)之間傳輸信息類型不同可以分為數(shù)據(jù)、狀態(tài)和控制三種I/O端口,如圖4.1所示。圖4.1接口與端口

1.數(shù)據(jù)端口

數(shù)據(jù)端口傳輸數(shù)據(jù)信息,實現(xiàn)數(shù)據(jù)的輸入或輸出,因此是雙向的。

2.狀態(tài)端口

狀態(tài)端口傳輸狀態(tài)信息,狀態(tài)信息反映外設(shè)工作狀態(tài),它由外設(shè)送入CUP,是單向輸入的。

3.控制端口

控制端口傳輸控制信息,控制信息是CUP送給外設(shè)的,它是單向輸出的。

4.1.3I/O端口的編址

I/O端口的編址有兩種方式:I/O端口與存儲器單元統(tǒng)一編址、I/O端口獨立編址。

1.I/O端口與存儲器單元統(tǒng)一編址

I/O端口與存儲器單元統(tǒng)一編址即存儲器映像編址方式,此種方式實際上是將I/O端口與存儲器單元等同看待,I/O端口與存儲器單元在同一個地址空間中統(tǒng)一編址。通常情況下將整個地址空間的一小部分(比如54KB)分配給I/O端口,如圖4.2所示。圖4.2I/O端口與存儲器單元統(tǒng)一編址

2.I/O端口獨立編址

I/O端口獨立編址也稱I/O端口隔離編址,存儲器空間和I/O端口空間在邏輯上是兩個完全獨立的空間,操作兩個空間需要不同的讀寫控制信號。X85系列微機采取的是這種編址方式,如圖4.3所示。圖4.3I/O端口獨立編址

兩種編址方式的比較如表4.1所示。

4.2CUP與外設(shè)之間的數(shù)據(jù)傳送方式

4.2.1無條件傳送無條件傳送方式是最簡單的一種傳送方式,硬件組成簡單,容易實現(xiàn)。以這種方式進行輸入/

輸出操作時,CUP總是默認外設(shè)是準備就緒的。進行輸入/

輸出操作猶如對內(nèi)存單元進行讀/寫一樣,無需對外設(shè)狀態(tài)進行查詢。這種傳送方式的傳送速度不高,傳送效率低,適合于操作頻率低或外設(shè)工作速度足夠快,能與CUP工作速度匹配的場合。

1.無條件輸入

無條件輸入方式如圖4.4所示。當進行輸入操作時,只需對指定端口進行讀操作即可,CUP總是認為外設(shè)已經(jīng)將Data準備就緒,地址譯碼器對地址進行譯碼,并與讀信號進行邏輯或后開啟三態(tài)緩沖器,從而來自外設(shè)的數(shù)據(jù)通過緩沖器,再經(jīng)過數(shù)據(jù)總線進入CUP,完成數(shù)據(jù)輸入。圖4.4無條件輸入傳送方式

2.無條件輸出

無條件輸出方式如圖4.5所示。當進行輸出操作時,CUP總認為外設(shè)處于空閑狀態(tài),將數(shù)據(jù)送到數(shù)據(jù)總線上,發(fā)出相應(yīng)端口的地址,地址譯碼輸出與寫信號邏輯或后作為數(shù)據(jù)鎖存器的鎖存信號,從而數(shù)據(jù)被鎖存,外設(shè)從鎖存器上接收數(shù)據(jù)。圖4.5無條件輸出傳送方式

4.2.2查詢式傳送

查詢式傳送也稱條件傳送。這種方式在進行數(shù)據(jù)傳送前,CUP先查詢外設(shè)狀態(tài),在輸入時先查詢外設(shè)是否將數(shù)據(jù)準備好;在輸出時先查詢外設(shè)是否處于空閑狀態(tài)。

1.查詢式輸入

查詢式輸入如圖4.5所示。當外設(shè)將數(shù)據(jù)準備好后,發(fā)出鎖存脈沖,該鎖存脈沖將數(shù)據(jù)鎖存的同時觸發(fā)D觸發(fā)器,使D觸發(fā)器的Q=1,D觸發(fā)器的這個狀態(tài)表示數(shù)據(jù)準備好。該狀態(tài)信號經(jīng)過一個三態(tài)緩沖器后送到數(shù)據(jù)總線上,CUP在進行數(shù)據(jù)輸入之前,首先對狀態(tài)端口進行讀操作,讀入狀態(tài)信號(Ready),如果Ready=1,則表示數(shù)據(jù)準備好,接下來對數(shù)據(jù)端口進行讀操作,打開三態(tài)緩沖器,數(shù)據(jù)進入數(shù)據(jù)總線完成輸入操作。圖4.5查詢輸入傳送方式

2.查詢式輸出

查詢式輸出如圖4.7

所示。在CUP將數(shù)據(jù)信息輸出之前,先對狀態(tài)端口進行讀操作,若輸出設(shè)備處于忙狀態(tài),則Susy=1,此時不能輸出數(shù)據(jù)信息,當外設(shè)處于空閑狀態(tài)時,Status=0,讀出的狀態(tài)信號Susy=0,則對數(shù)據(jù)端口進行寫操作,輸出數(shù)據(jù)信息,數(shù)據(jù)鎖存器將數(shù)據(jù)鎖存,外設(shè)從鎖存器上獲得數(shù)據(jù)。外設(shè)在接收數(shù)據(jù)過程中,Status一直維持1狀態(tài),直到接收完畢才變成0狀態(tài)。

4.2.3中斷傳送方式

無條件和查詢傳送都是CUP主動的傳送方式,而中斷傳送則是外設(shè)主動的傳送方式。外設(shè)需要CUP進行數(shù)據(jù)傳輸服務(wù)時,需向CUP發(fā)送服務(wù)請求,當CUP響應(yīng)了這個請求后,中斷現(xiàn)行操作,轉(zhuǎn)而去為提出服務(wù)請求的外設(shè)服務(wù),完成數(shù)據(jù)傳輸,當數(shù)據(jù)傳輸操作完成后又回到被中斷的操作繼續(xù)執(zhí)行。圖4.8中斷輸入傳送方式

4.2.4DMA傳送方式

DMA傳送方式如圖4.9所示。以CUP向外設(shè)輸出數(shù)據(jù)為例,CUP首先要告訴DMA控制器需要傳送的數(shù)據(jù)起始地址和數(shù)據(jù)塊長度。其工作過程如下:

(1)

當外設(shè)可以接收數(shù)據(jù)時,外設(shè)向DMA控制器發(fā)出DMA請求信號DRQ。

(2)

DMA控制器收到DRQ有效信號后,即向CUP發(fā)出總線請求信號HOLD,請求CUP讓出系統(tǒng)總線。

(3)

CUP收到HOLD請求有效信號后,在當前總線周期結(jié)束后,讓出系統(tǒng)總線,并發(fā)出總線請求應(yīng)答信號HLDA,此時,CUP監(jiān)視HOLD的狀態(tài)。

(4)

DMA控制器監(jiān)測到HLDA信號有效后,即獲得系統(tǒng)總線控制權(quán),向外設(shè)發(fā)出DMA響應(yīng)信號BACKK,并開始向外設(shè)傳送數(shù)據(jù),直到數(shù)據(jù)塊傳送結(jié)束。

(5)

DMA傳送結(jié)束后,DMA控制器撤銷HOLD信號,使系統(tǒng)總線處于浮空狀態(tài)。

(5)

CUP監(jiān)測到HOLD信號失效后,立即撤銷HLDA信號,收回系統(tǒng)總線控制權(quán)。圖4.9DMA傳送方式示意圖

4.2.5幾種傳送方式的比較

無條件傳送方式對硬件要求最少,操作也非常簡單,輸入/

輸出操作猶如存儲單元存取數(shù)據(jù)一般,但由于外設(shè)的工作速度相對于CUP來說十分緩慢,因此,這種傳送方式只用在操作頻率低或外設(shè)響應(yīng)速度快的場合,如電機啟??刂啤ED數(shù)碼顯示輸出等。

查詢傳送方式比起無條件傳送方式多了外設(shè)狀態(tài)信息的傳輸,因此它的硬件稍許復(fù)雜,但這種傳送方式能夠保證每次傳送都是可靠的。

比起無條件傳送和查詢傳送方式,中斷傳送方式大大提高了CUP的效率,相應(yīng)地對硬件的要求也更高。

DMA傳送方式對硬件的要求最高,硬件組成及管理機制復(fù)雜,這種方式幾乎將CUP從輸入/

輸出操作中解脫出來。DMA方式的響應(yīng)時間短,省去了中斷管理中CUP保護和恢復(fù)現(xiàn)場的麻煩,最大限度地減少了CUP的開銷。DAM控制器是一種專門用于數(shù)據(jù)輸入/

輸出傳送的器件,省去了取指令和分析指令操作,因而執(zhí)行效率更高。DMA傳送方式特別適用于大批量數(shù)據(jù)的輸入/

輸出傳輸,如磁盤數(shù)據(jù)的存取操作等。

4.3并行接口基本電路

并行輸入/

輸出是計算機最基本的數(shù)據(jù)輸入/

輸出形式,它的傳輸效率高,適合于近距離數(shù)據(jù)傳輸。通用CUP(如Intel系列CUP)沒有并行I/O接口電路,要進行并行I/O操作,就需要在外部擴展相應(yīng)的并行I/O接口電路。

4.3.1緩沖與鎖存電路圖4.10緩沖器和鎖存器的基本電路

4.3.2上拉與下拉輸入電路

上拉輸入電路就是將輸入信號通過一個電阻與電源連接,從而減小了輸入信號的驅(qū)動負荷,上拉輸入電路如圖4.11(a)所示。下拉輸入電路就是將輸入信號通過一個電阻與地連接,從而減小對輸入信號的灌電流,下拉輸入電路如圖4.11(b)所示。無論是上拉還是下拉電路,都能將輸入信號穩(wěn)定,上拉電路能將不確定信號鉗位在高電平,下拉電路能將不確定信號鉗位在低電平。圖4.11上拉、下拉輸入電路原理圖

4.3.3OC/OD輸出電路

OC輸出電路即集電極開路輸出電路,輸出端相當于三極管的集電極,如圖4.12所示。如果不接入上拉電路,則OC輸出電路只能輸出低電平。圖4.12OC輸出電路和線與功能

4.3.4推挽輸出電路

推挽輸出電路一般由兩個參數(shù)相同的三極管或MOSFET管構(gòu)成,如圖4.13所示,兩個管子分別受兩互補信號的控制,總是在一個管子導(dǎo)通的時候另一個截止。推挽電路工作時,兩只對稱的功率開關(guān)管每次只有一個導(dǎo)通,所以導(dǎo)通損耗小、效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級既提高電路的負載能力,又提高開關(guān)速度。圖4.13推挽輸出電路

推挽輸出電路既可以輸出高電平,也可以輸出低電平,還可以輸出連續(xù)脈沖信號,比起OC輸出電路,推挽輸出的負載能力更強,輸出頻率更高。需要注意的是,如果兩路推挽輸出碰在一起,如圖4.13虛線所示,當其中一路輸出高電平,而另一路輸出低電平,則會造成電源短路,因此必須避免這種情況發(fā)生。

4.4STM32的GPIO

4.4.1GPIO的端口電路STM32系列中不同型號的產(chǎn)品擁有的GPIO端口數(shù)量不同,但每個GPIO端口都有15根管腳,并通過寄存器進行操作控制。圖4.14給出了一個I/O端口位的基本結(jié)構(gòu),每個端口位可用作開關(guān)量的輸入/

輸出、模擬量輸入或者復(fù)用功能。圖4.14I/O端口位的基本結(jié)構(gòu)

1.用作輸入功能

·I/O端口的輸出緩沖器被禁止。

·施密特觸發(fā)器輸入被激活。

·根據(jù)需要選擇內(nèi)部弱上拉或下拉電阻連接。

·出現(xiàn)在I/O引腳上的數(shù)據(jù)在每個ABP2時鐘被采樣到輸入數(shù)據(jù)寄存器(IDR)。

·用戶程序?qū)DR的讀訪問可得到I/O引腳狀態(tài)。

2.用作輸出功能

·開漏模式下,輸出數(shù)據(jù)寄存器(ODR)上的0激活NMOS,1將端口置于高阻狀態(tài)。

·推挽模式下,輸出數(shù)據(jù)寄存器(ODR)上的0激活NMOS,1將激活PMOS。

·施密特觸發(fā)器輸入被激活。

·弱上拉和弱下拉電阻被禁止。

·出現(xiàn)在I/O引腳上的數(shù)據(jù)在每個ABP2時鐘被采樣到數(shù)據(jù)輸入寄存器IDR。

·在開漏模式下,對IDR的讀訪問可得到I/O引腳狀態(tài)。

·在推挽模式下,對ODR的讀訪問可得到最后一次寫的值。

3.用作模擬量輸入

·輸出緩沖器被禁止。

·禁止施密特觸發(fā)輸入,實現(xiàn)每個模擬I/O引腳上零消耗。施密特觸發(fā)輸出值強制為0。

·弱上拉和弱下拉電阻被禁止。

·讀取數(shù)據(jù)輸入寄存器將返回0。

4.4.2GPIO的工作方式與寄存器配置

STM32的每個GPIO引腳都可由軟件配置成輸出(推挽或開漏)、輸入(帶或不帶上拉或下拉)或復(fù)用的外設(shè)功能端口。多數(shù)GPIO引腳與數(shù)字或模擬的復(fù)用外設(shè)共用;除了具有模擬輸入(ADC)功能的引腳之外,其他的GPIO引腳都有大電流通過能力,有如下8種模式:

1.配置寄存器GPIOx_CRL和GPIOx_CRH

該寄存器的復(fù)位值為0x4444_4444,其實就是復(fù)位時配置端口為浮空輸入模式。

CRH的作用和CRL完全一樣,只是CRL控制的是低8位輸出口,而CRH控制的是高8位輸出口。表4.2、表4.3和表4.4表示CRL各位的含義。

2.輸入數(shù)據(jù)寄存器GPIOx_IDR

IDR是端口輸入數(shù)據(jù)寄存器的簡稱。要想知道某個I/O口的狀態(tài),就要讀這個寄存器,再從讀出的寄存器值分析出某個引腳的狀態(tài),IDR只用了低15位。輸入數(shù)據(jù)寄存器為只讀寄存器,并且只能以15位的形式讀出。輸入數(shù)據(jù)寄存器各位的描述如表4.5所示。

3.輸出數(shù)據(jù)寄存器GPIOx_ODR

ODR是端口輸出數(shù)據(jù)寄存器的簡稱。其作用就是控制端口的輸出,ODR對應(yīng)寄存器位置1,則對應(yīng)的GPIO引腳就會輸出高電平。

4.端口位設(shè)置/

清除寄存器(GPIOx_BSRR)

STM32的每個GPIO端口都有GPIOx_BSRR和GPIOx_BRR寄存器,通過這兩個寄存器可以直接對對應(yīng)的GPIOx的某位端口置1或置0。

也就是說GPIOx_BSRR的高15位稱做清除寄存器,而GPIOx_BSRR的低15位稱作設(shè)置寄存器。對GPIOx_BSRR寄存器中的位置0,則對它對應(yīng)的端口不起作用,也就是寫0無效。

5.端口位清除寄存器(GPIOx_BRR)

如果只需要對GPIOx端口的某位置0,則可以使用端口位清除寄存器GPIOx_BRR。與GPIOx_BSRR不同的是,GPIOx_BRR只有低15位有效,分別對應(yīng)端口x的每個位,對15位中的某位置1,則端口x的對應(yīng)位被清0。同樣,在GPIOx_BRR中寫0是無效的。

4.4.3GPIO引腳的復(fù)用與重映射

STM32內(nèi)置了許多外設(shè),每個內(nèi)置外設(shè)都有若干個輸入/

輸出引腳,如果這些引腳與GPIO引腳同時引出,會使得芯片的引腳數(shù)過多,增加芯片的面積和成本。

所謂AFIO,就是將內(nèi)置外設(shè)的引腳和GPIO的引腳進行復(fù)用,即一個引腳可以有多個功能,也可以認為是將一些外設(shè)的專用功能引腳映射到某個GPIO引腳上。

如圖4.15所示,為了使開發(fā)人員在設(shè)計STM32應(yīng)用電路時有更多的選擇,一個設(shè)備往往有多個映射方案。這種引腳的重映射可以方便電路板的走線,進一步優(yōu)化引腳的配置。不過這種重映射是相對固定的,不能夠進行隨意映射,特定引腳的重映射將在后續(xù)的章節(jié)里陸續(xù)介紹。圖4.15STM32F103xx增強型LQFP100引腳圖

4.5GPIO的應(yīng)用

4.5.1功能要求與硬件設(shè)計1.功能要求通過STM32開發(fā)板上接PD12的按鍵K1來控制接PC7

的LD2。

2.硬件設(shè)計

如圖4.15所示,按鍵K1通過一個上拉電阻接PD12,無按鍵時從PD12輸入寄存器讀出“1”;有鍵按下時從PD12輸入寄存器讀出“0”。圖4.15按鍵、LED的接口電路

3.GPIO硬件的初始化

在使用一個外設(shè)前,必須先配置和激活啟動該外設(shè)的時鐘,如GPIO端口B,那么就要激活GPIOB的時鐘。只有啟動了時鐘的外設(shè)才變得可用,而不需要使用的外設(shè)無需使能時鐘,這樣做的好處是可以降低STM23芯片的內(nèi)部功耗。如APB2ENR

寄存器是APB2總線上的外設(shè)時鐘使能寄存器,其各位描述如表4.5所示。

從表4.5中可以看出,PortB

的時鐘使能位在寄存器APB2ENR

的bit3,只需要將這個位置1就可以使能PortB的時鐘了。

時鐘被啟動之后,再根據(jù)具體功能,對這個GPIO進行配置。根據(jù)需要,按鍵輸入被設(shè)置為上拉輸入,LED輸出可被設(shè)置為翻轉(zhuǎn)頻率為50MHz

的推挽輸出。最后就可以編寫程序在相關(guān)寄存器在端口上進行輸入/

輸出實現(xiàn)預(yù)定的功能了。

4.5.2基于匯編的GPIO應(yīng)用

1.程序說明與宏定義

每段程序或函數(shù)都應(yīng)采用一定的方式說明其功能、占用的資源、入口參數(shù)、出口參數(shù)、調(diào)用者,除此以外,還可以有程序編寫者的姓名、公司等信息,有些地方還需要對采用的算法進行適當?shù)恼f明。

【例4.1】基于匯編的GPIO操作。

本例由于程序并不復(fù)雜,因此程序的說明也較為簡單。

2.向量表

根據(jù)STM32存儲器的映射關(guān)系和啟動要求,在每個程序開始的地方都必須安排向量表。由DCD

指令定義的向量表的第1個4字節(jié)單元用于初始化主堆棧,而DCD

指令定義的第2個4字節(jié)單元用于存放復(fù)位向量,此點就是程序的啟動點,填寫了主程序的起始地址Start,此后每4字節(jié)單元填寫對應(yīng)的中斷向量(中斷服務(wù)程序入口地址)。

本程序為了完整性安排了兩個中斷向量NMI_Handler

(不可屏蔽中斷)和HardFault_Handler(硬故障中斷),它們表示的是對應(yīng)中斷服務(wù)程序的首地址,這兩個中斷沒有太多的處理動作,當對應(yīng)事件發(fā)生時,僅僅使程序陷入死循環(huán)。

3.代碼段

程序的可執(zhí)行部分是由代碼段組成的,下面的程序由一段主程序、一段延時子程序和兩個異常處理程序組成。

根據(jù)STM32功能部件使用的一般原則,在主程序中首先在外設(shè)時鐘使能寄存器RCC_APB2ENR中使能GPIOC、GPIOD

的時鐘,然后進行部件的功能配置。

4.5.3基于C寄存器操作的GPIO應(yīng)用

匯編是面向硬件底層的語言工具,不適合編寫大型、復(fù)雜的程序。C是結(jié)構(gòu)化的高級語言,是嵌入式系統(tǒng)開發(fā)主要使用的語言工具?;谙嗤碾娐?,上面的功能也可以由C語言操作寄存器來實現(xiàn)。

2.C語言環(huán)境下的寄存器訪問

無論是8位的51單片機,還是32位的STM32,無論是采用匯編語言還是采用C

語言,實際上所有MCU

的應(yīng)用開發(fā)都是靠配置寄存器來完成的。因此如何充分發(fā)揮C

語言結(jié)構(gòu)化的優(yōu)點,方便地訪問STM32的寄存器是一個必須解決的問題。

從圖2.19可以發(fā)現(xiàn),0x4001_1800是GPIOE

口的起始地址,進一步查閱手冊,每個GPIO

所含的7

個寄存器的偏移地址如表4.7

所示,每個寄存器的偏移地址都是間隔4字節(jié)。

3.GPIO的C

語言寄存器實例

按結(jié)構(gòu)化編程思想,用戶程序分為以下四塊:按鍵程序key.h和key.c;LED程序LED.h和LED.c;延時程序delay.h

和delay.c;主程序test.c。

除主程序外,每個子模塊分別由.h頭文件和.c實現(xiàn)文件組成。.h

頭文件中是各類聲明,而.c實現(xiàn)文件中主要是各個函數(shù)的實體。本實例的功能較為簡單,這些文件都不復(fù)雜,更容易看清整個項目的結(jié)構(gòu)。

3)

主程序

由于功能相同,主程序和上一單元的匯編程序基本相同,只是書寫方式發(fā)生改變,另外,結(jié)構(gòu)化的程序

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論