MSP430同步串行通信SPI_第1頁
MSP430同步串行通信SPI_第2頁
MSP430同步串行通信SPI_第3頁
MSP430同步串行通信SPI_第4頁
MSP430同步串行通信SPI_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、同步串行通信同步串行通信SPI內(nèi)容提要內(nèi)容提要SPI總線協(xié)議總線協(xié)議MSP430 SPI模塊模塊SPI應用應用SPI總線介紹總線介紹SPI接口是接口是Motorola首先提出的首先提出的全雙工全雙工三三/四線四線同步同步串行外串行外圍接口,采用主從模式架構(gòu),支持多從設備應用,一般只圍接口,采用主從模式架構(gòu),支持多從設備應用,一般只支持單主設備。支持單主設備。利用利用34條線完成兩個芯片之間的雙工高速通信。兩條數(shù)條線完成兩個芯片之間的雙工高速通信。兩條數(shù)據(jù)線用于收發(fā)數(shù)據(jù),一條時鐘線用于同步,一條作為從機據(jù)線用于收發(fā)數(shù)據(jù),一條時鐘線用于同步,一條作為從機選擇。選擇。時鐘由主設備控制,時鐘由主設備控

2、制,當主機發(fā)送一字節(jié)數(shù)據(jù)(通過主出從當主機發(fā)送一字節(jié)數(shù)據(jù)(通過主出從入入MOSI引腳)的同時,從機返回一字節(jié)數(shù)據(jù)(通過引腳)的同時,從機返回一字節(jié)數(shù)據(jù)(通過主入主入從出從出MISO引腳)。引腳)??偩€上允許連接多個設備,總線上允許連接多個設備,在同一時刻只允許一個主機操在同一時刻只允許一個主機操作總線,并且同時只能與一個從機通信。主機控制數(shù)據(jù)的作總線,并且同時只能與一個從機通信。主機控制數(shù)據(jù)的傳輸過程。傳輸過程。目前應用中的數(shù)據(jù)速率可達目前應用中的數(shù)據(jù)速率可達Mbps級。級。一、一、SPI總線協(xié)議總線協(xié)議 SPI總線可在軟件的控制下構(gòu)成各種簡單的或復雜的系統(tǒng): 1個主MCU和幾個從MCU 幾個

3、從MCU相互連接構(gòu)成多主機系統(tǒng)(分布式系統(tǒng)) 1個主MCU和1個或幾個從I/O設備 SPI總線結(jié)構(gòu)總線結(jié)構(gòu)SPI典型結(jié)構(gòu)如下:典型結(jié)構(gòu)如下:SPI工作模式工作模式 主機模式:主機模式: 當器件作為主機時,使用一個當器件作為主機時,使用一個IO引腳拉低相應從機的引腳拉低相應從機的選擇引腳選擇引腳(STE),傳輸?shù)钠鹗加芍鳈C發(fā)送數(shù)據(jù)來啟動,時,傳輸?shù)钠鹗加芍鳈C發(fā)送數(shù)據(jù)來啟動,時鐘鐘(SCK)信號由主機產(chǎn)生。通過信號由主機產(chǎn)生。通過MOSI發(fā)送數(shù)據(jù),同時通發(fā)送數(shù)據(jù),同時通過過MISO引腳接收從機發(fā)出的數(shù)據(jù)。引腳接收從機發(fā)出的數(shù)據(jù)。 從機模式:從機模式: 當器件作為從機時,傳輸在從機選擇引腳當器件作為

4、從機時,傳輸在從機選擇引腳(STE)被主被主機拉低后開始,接收主機輸出的時鐘信號,在讀取主機數(shù)機拉低后開始,接收主機輸出的時鐘信號,在讀取主機數(shù)據(jù)的同時通過據(jù)的同時通過MISO引腳輸出數(shù)據(jù)。引腳輸出數(shù)據(jù)。SPI電氣連接電氣連接以線以線SPI為例,其通信時需要的為例,其通信時需要的4個引腳分別為:個引腳分別為:SPI主機主機SPI從機從機1SPI從機從機2STESPI BUSP0.1P0.2nCSnCS作作SPI主機時,主機時,STE要接上要接上拉電阻拉電阻MSP430G2553引腳圖引腳圖STE引腳作用引腳作用STE:從機模式發(fā)送接收允許控制引腳,控制多主從系統(tǒng):從機模式發(fā)送接收允許控制引腳,

5、控制多主從系統(tǒng)中的多個從機。該引腳不用于中的多個從機。該引腳不用于3線線SPI操作,可以在操作,可以在4線線SPI操作中使多主機共享總線,避免發(fā)生沖突。操作中使多主機共享總線,避免發(fā)生沖突。4線線SPI操作主模式中,操作主模式中,STE的含義如下:的含義如下:SIMO和和SCLK被強制進入輸入狀態(tài)被強制進入輸入狀態(tài)SIMO和和SCLK正常操作正常操作4線線SPI操作從模式中,操作從模式中,STE的含義如下:的含義如下:允許從機發(fā)送接收數(shù)據(jù),允許從機發(fā)送接收數(shù)據(jù),SIMO正常操作正常操作禁止從機發(fā)送接收數(shù)據(jù),禁止從機發(fā)送接收數(shù)據(jù),SIMO被強制進入輸入狀態(tài)被強制進入輸入狀態(tài)SPI數(shù)據(jù)傳輸數(shù)據(jù)傳輸

6、數(shù)據(jù)傳輸格式:數(shù)據(jù)傳輸格式: 通常是高位通常是高位(MSB)在前,低位在前,低位(LSB)在后。一些增在后。一些增強型強型MCU中可以通過軟件設置高位在前或低位在前。中可以通過軟件設置高位在前或低位在前。 下面以位數(shù)據(jù)的傳輸為例,看一下種不同數(shù)據(jù)傳輸下面以位數(shù)據(jù)的傳輸為例,看一下種不同數(shù)據(jù)傳輸格式的時序。首先介紹兩個概念:格式的時序。首先介紹兩個概念:1.時鐘極性:時鐘極性:表示時鐘信號在空閑時是高電平還是低電表示時鐘信號在空閑時是高電平還是低電平。平。2.時鐘相位:時鐘相位:決定數(shù)據(jù)是在決定數(shù)據(jù)是在SCK的起始沿采樣還是在的起始沿采樣還是在SCK的結(jié)束沿采樣。的結(jié)束沿采樣。SPI傳輸時序傳輸

7、時序時鐘相位為時鐘相位為1 1時鐘前沿數(shù)時鐘前沿數(shù)據(jù)輸出據(jù)輸出時鐘后沿數(shù)時鐘后沿數(shù)據(jù)采樣據(jù)采樣時鐘信號時鐘信號極性極性0 0極性極性1 1從機選擇從機選擇時鐘相位時鐘相位控制為控制為0 0時鐘前沿時鐘前沿數(shù)據(jù)采樣數(shù)據(jù)采樣時鐘后沿時鐘后沿數(shù)據(jù)輸出數(shù)據(jù)輸出時鐘前沿輸出時鐘前沿輸出時鐘后沿采樣時鐘后沿采樣時鐘前沿采樣時鐘前沿采樣時鐘后沿輸出時鐘后沿輸出傳輸模式傳輸模式根據(jù)時鐘極性根據(jù)時鐘極性(CPOL)及相位及相位(CPHA)不同可以組合成不同可以組合成4種工作模式:種工作模式:SPI0,SPI1,SP2,SP3.(1)SPI0:CPOL=0,CPHA=0(2)SPI1:CPOL=0,CPHA=1(

8、3)SPI2:CPOL=1,CPHA=0(4)SPI3:CPOL=1,CPHA=1傳輸模式傳輸模式時鐘極性時鐘極性(CPOL)定義了時鐘空閑狀態(tài)電平,定義了時鐘空閑狀態(tài)電平,對傳輸協(xié)議沒有重大影響。對傳輸協(xié)議沒有重大影響。CPOL=0:時鐘空閑狀態(tài)為低電平。:時鐘空閑狀態(tài)為低電平。CPOL=1:時鐘空閑狀態(tài)為高電平。:時鐘空閑狀態(tài)為高電平。傳輸模式傳輸模式時鐘相位時鐘相位(CPHA)定義數(shù)據(jù)的采樣時間。定義數(shù)據(jù)的采樣時間。CPHA=0:在時鐘的第一個跳變沿:在時鐘的第一個跳變沿(上升沿上升沿或下降沿或下降沿)進行數(shù)據(jù)采樣。進行數(shù)據(jù)采樣。CPHA=1:在時鐘的第二個跳變沿:在時鐘的第二個跳變沿(

9、上升沿上升沿或下降沿或下降沿)進行數(shù)據(jù)采樣。進行數(shù)據(jù)采樣。特點特點優(yōu)點:優(yōu)點:(1)接口簡單,利于硬件設計與實現(xiàn)。)接口簡單,利于硬件設計與實現(xiàn)。(2)時鐘速度快,且沒有系統(tǒng)開銷。)時鐘速度快,且沒有系統(tǒng)開銷。(3)相對抗干擾能力強,傳輸穩(wěn)定。)相對抗干擾能力強,傳輸穩(wěn)定。特點特點 缺點:缺點:(1)缺乏流控制機制,無論主器件還是從器)缺乏流控制機制,無論主器件還是從器件均不對消息進行確認,主器件無法知道件均不對消息進行確認,主器件無法知道從器件是否繁忙。因此,需要軟件彌補,從器件是否繁忙。因此,需要軟件彌補,增加了軟件開發(fā)工作量。增加了軟件開發(fā)工作量。(2)沒有多主器件協(xié)議,必須采用很復雜的

10、)沒有多主器件協(xié)議,必須采用很復雜的軟件和外部邏輯來實現(xiàn)多主器件架構(gòu)。軟件和外部邏輯來實現(xiàn)多主器件架構(gòu)。通用串行通信接口通用串行通信接口(USCI)模塊模塊通用串行通信接口通用串行通信接口(USCI)模塊支持多種串行通信模式。不模塊支持多種串行通信模式。不同的同的USCI 模塊支持不同的模式模塊支持不同的模式USCI_Ax 模塊支持:模塊支持:UART 模式模式IrDA 通信的脈沖整形通信的脈沖整形LIN 通信的自動波特率檢測通信的自動波特率檢測SPI 模式模式USCI_Bx 模塊支持:模塊支持:I2C 模式模式SPI 模式模式MSP430模塊特點模塊特點MSP430的的SPI模塊有如下特點:

11、模塊有如下特點:支持支持3線或線或4線線SPI操作操作支持支持7位或位或8位數(shù)據(jù)格式位數(shù)據(jù)格式接收和發(fā)送有單獨的移位寄存器接收和發(fā)送有單獨的移位寄存器接收和發(fā)送有獨立的緩沖器接收和發(fā)送有獨立的緩沖器接收和發(fā)送有獨立的中斷能力接收和發(fā)送有獨立的中斷能力時鐘的極性和相位可編程時鐘的極性和相位可編程主模式的時鐘頻率可編程主模式的時鐘頻率可編程傳輸速率可編程傳輸速率可編程支持連續(xù)收發(fā)操作支持連續(xù)收發(fā)操作支持主從方式支持主從方式主模式主模式MSP430 USCI作為主機、外圍設備作為從機作為主機、外圍設備作為從機從模式從模式外圍設備外圍設備作為主機,作為主機,MSP430 USCI作為從機作為從機SPI

12、模式下可用的模式下可用的USCI寄存器寄存器USCI_Ax和和USCI_Bx都有都有SPI模塊,下面以模塊,下面以USCI_Bx為例,介紹相關寄存器為例,介紹相關寄存器UCB控制寄存器控制寄存器 UCBxCTL1(USCI_Bx control register)00: 保留保留01: ACLK10:SMCLK11:SMCLK0: 不允許軟件復位不允許軟件復位1: 允許軟件復位允許軟件復位0: 前沿采樣,后沿輸出前沿采樣,后沿輸出1: 前沿輸出,后沿采樣前沿輸出,后沿采樣0: 從機模式從機模式1: 主機模式主機模式00: 三線制三線制01:四線制,四線制,UCxSTE=1選擇從機選擇從機10:

13、四線制,四線制,UCxSTE=0選擇從機選擇從機11:I2C模式模式0: 異步通信異步通信1: 同步通信同步通信0: 時鐘空閑狀態(tài)為低電平時鐘空閑狀態(tài)為低電平1: 時鐘空閑狀態(tài)為高電平時鐘空閑狀態(tài)為高電平UCB控制寄存器控制寄存器 UCBxCTL0(USCI_Bx control register)0: LSB first1: MSB first0: 8-bit data1: 7-bit data波特率控制寄存器波特率控制寄存器 UCBxBR0和和UCBxBR1UCBxBR0是波特率發(fā)生器的低是波特率發(fā)生器的低8位位;UCBxBR1是波特率發(fā)生器的高是波特率發(fā)生器的高8位位.串口中斷允許寄存器

14、串口中斷允許寄存器 UCBxIE0: 發(fā)送中斷禁止發(fā)送中斷禁止1: 發(fā)送中斷允許發(fā)送中斷允許0: 接收中斷禁止接收中斷禁止1: 接收中斷允許接收中斷允許串口中斷標志寄存器串口中斷標志寄存器 UCBxIFG1: 發(fā)送緩沖器為空發(fā)送緩沖器為空1: 接收接收緩沖器為空緩沖器為空串口中斷向量值寄存器串口中斷向量值寄存器 UCBxIV00: 沒有中斷沒有中斷02:Interrupt source:Data received;Interrupt flag:UCRXIFG; Interrupt priority:Highest 04:Interrupt source:Transmit buffer empt

15、y;Interrupt flag:UCTXIFG; Interrupt priority:Lowest串口中斷緩沖器串口中斷緩沖器 UCBxRXBUF和和UCBxTXBUFUCRXBUFx: 接收緩沖器接收緩沖器UCTXBUFx: 發(fā)送緩沖器發(fā)送緩沖器應用示例應用示例 SPI主機與從機通過三線主機與從機通過三線SPI接口通信,主機發(fā)送數(shù)據(jù)給從機,同時接口通信,主機發(fā)送數(shù)據(jù)給從機,同時又接收從機發(fā)來的數(shù)據(jù),發(fā)送數(shù)據(jù)從又接收從機發(fā)來的數(shù)據(jù),發(fā)送數(shù)據(jù)從0 x01開始遞增,從機接收到數(shù)據(jù),開始遞增,從機接收到數(shù)據(jù),就立馬發(fā)出,主機接到這個數(shù)據(jù),進入中斷如果發(fā)送和接收數(shù)據(jù)相同,就立馬發(fā)出,主機接到這個數(shù)

16、據(jù),進入中斷如果發(fā)送和接收數(shù)據(jù)相同,則點亮則點亮LED燈,否則熄滅。波特率為燈,否則熄滅。波特率為500kbps程序流程圖程序流程圖RX ISR初始化初始化SPI模塊模塊初始化發(fā)送數(shù)據(jù)初始化發(fā)送數(shù)據(jù)MST_Data判斷發(fā)送緩沖是否為空,判斷發(fā)送緩沖是否為空,若是,則發(fā)送第一個字符若是,則發(fā)送第一個字符判斷發(fā)送緩沖是否為空,判斷發(fā)送緩沖是否為空,為空說明上次發(fā)送完畢為空說明上次發(fā)送完畢判斷本次接收到的字符判斷本次接收到的字符和上次發(fā)送是否相同,和上次發(fā)送是否相同,相同則亮燈相同則亮燈發(fā)送數(shù)據(jù)自加發(fā)送數(shù)據(jù)自加1,并賦值給發(fā)送緩沖并賦值給發(fā)送緩沖 主機主機RXISR初始化初始化SPI模塊模塊判斷發(fā)送

17、緩沖是否為空,判斷發(fā)送緩沖是否為空,為空說明上次發(fā)送完畢為空說明上次發(fā)送完畢本次接收到的數(shù)據(jù)本次接收到的數(shù)據(jù)賦值給發(fā)送緩沖賦值給發(fā)送緩沖 從機從機主機主機端口初始化端口初始化 P8SEL |= BIT4+BIT5+BIT6; P8DIR |= BIT4+BIT5+BIT6; P1DIR |= BIT0 + BIT1; P1SEL |= BIT0 + BIT1;選擇選擇P1.1P1.0端口為輸出端口為輸出選擇選擇P1.1P1.0端口為輸出端口為輸出選擇選擇P8.4P8.6為外設功能為外設功能選擇選擇P8.4P8.6端口方向為輸出端口方向為輸出主機主機SPI模塊初始化模塊初始化UCB1CTL1 |

18、= UCSWRST;UCB1CTL0|=UCMST+UCSYNC+UCCKPL+UCMSB; UCB1CTL1 |= UCSSEL_2; UCB1BR0 = 2; UCB1BR1 = 0; UCB1IE |= UCRXIE; UCB1CTL1 &= UCSWRST選擇選擇SMCLKUSCI_Bx模塊邏輯復位模塊邏輯復位3線,線,8位,主機模式,位,主機模式,時鐘極性高,時鐘極性高,MSB先發(fā)送先發(fā)送配置波特率配置波特率打開打開SPI中斷中斷USCI_Bx復位釋放復位釋放主機主機其他配置其他配置 MST_Data = 0 x01; SLV_Data = 0 x00; P1OUT |= B

19、IT1; _delay_cycles(100); while (!(UC B1IFG&UCTXIFG); UC B1TXBUF = MST_Data;主機初始化數(shù)據(jù)主機初始化數(shù)據(jù)從機從機初始化初始化數(shù)據(jù)數(shù)據(jù)延時延時判斷發(fā)送緩沖是否為空,如果為空,判斷發(fā)送緩沖是否為空,如果為空,標志位置位,則說明上個數(shù)據(jù)未發(fā)送完畢,標志位置位,則說明上個數(shù)據(jù)未發(fā)送完畢,等待直到數(shù)據(jù)發(fā)送完畢等待直到數(shù)據(jù)發(fā)送完畢發(fā)送第一個字符發(fā)送第一個字符從機選擇引腳從機選擇引腳主機主機接收中斷接收中斷#pragma vector=USCI_ B1_VECTOR_interrupt void USCI_ B1_ISR(vo

20、id) switch(_even_in_range(UC B1IV,4) case 0: break; case 2: while (!(UC B1IFG&UCTXIFG); if (UC B1RXBUF=SLV_Data) P1OUT |= 0 x01; else P1OUT &= 0 x01; MST_Data+; SLV_Data+; UCB1TXBUF = MST_Data; _delay_cycles(500); break; case 4: break; default: break; 判斷發(fā)送緩沖是否為空,如果為空,判斷發(fā)送緩沖是否為空,如果為空,標志位置位,則說

21、明上個數(shù)據(jù)未發(fā)送完畢,標志位置位,則說明上個數(shù)據(jù)未發(fā)送完畢,等待直到數(shù)據(jù)發(fā)送完畢等待直到數(shù)據(jù)發(fā)送完畢 如果接收與發(fā)送相同,點亮如果接收與發(fā)送相同,點亮LED發(fā)送下一個字符發(fā)送下一個字符從機從機端口初始化端口初始化 P8SEL |= BIT4+BIT5+BIT6; P8DIR |= BIT4+BIT5+BIT6; P1REN |= BIT4; P1OUT |= BIT4; P1IES &=BIT4; P1IFG &=BIT4; P1IE |= BIT4;使能使能P1.4內(nèi)部電阻內(nèi)部電阻選擇選擇P8.4P8.6為外設功能為外設功能選擇選擇P8.4P8.6端口方向為輸出端口方向為輸出

22、P1.4上升沿捕獲,進入中斷上升沿捕獲,進入中斷P1.4 IFG 清零清零P1.4中斷使能中斷使能主機主機SPI模塊初始化模塊初始化UCB1CTL1 |= UCSWRST;UCB1CTL0 |= UCSYNC+UCCKPL+UCMSB; UCB1CTL1 &= UCSWRSTUSCI_Bx模塊邏輯復位模塊邏輯復位3線,線,8位,主機模式,位,主機模式,時鐘極性高,時鐘極性高,MSB先發(fā)送先發(fā)送USCI_Bx復位釋放復位釋放從機從機接收中斷接收中斷#pragma vector=USCI_ B1_VECTOR_interrupt void USCI_ B1_ISR(void) switch

23、(_even_in_range(UC B1IV,4) case 0: break; case 2: while (!(UC B1IFG&UCTXIFG); UCA0TXBUF = UCA0RXBUF; break; case 4: break; default: break; 判斷發(fā)送緩沖是否為空,如果為空,判斷發(fā)送緩沖是否為空,如果為空,標志位置位,則說明上個數(shù)據(jù)未發(fā)送完畢,標志位置位,則說明上個數(shù)據(jù)未發(fā)送完畢,等待直到數(shù)據(jù)發(fā)送完畢等待直到數(shù)據(jù)發(fā)送完畢發(fā)送下一個字符發(fā)送下一個字符從機從機主機開始工作提示中斷主機開始工作提示中斷#pragma vector=PORT1_VECTOR_i

24、nterrupt void Port_1(void) P1IFG &= BIT4; P1IE &= BIT4; UCB1CTL1 |= UCSWRST; UCB1CTL1 &= UCSWRST; UCB1IE |= UCRXIE;USCI_Bx復位釋放復位釋放主機準備就緒,主機準備就緒,USCI_Bx模塊邏輯復位模塊邏輯復位打開打開SPI中斷中斷 /| XIN|- | | | -|RST XOUT|- | | | P1.2|- Data Out (UCA0SIMO) | | LED -|P1.0 P1.1|- Data In (UCA0SOMI) | | Slave r

25、eset Serial Clock Out (UCA0CLK)三線制主機模式多次發(fā)數(shù)據(jù),每次發(fā)的數(shù)據(jù)都加三線制主機模式多次發(fā)數(shù)據(jù),每次發(fā)的數(shù)據(jù)都加1,第一次發(fā),第一次發(fā)1;同時也接收從機發(fā)過來的數(shù)據(jù),第一次接同時也接收從機發(fā)過來的數(shù)據(jù),第一次接0,依次加,依次加1.波特率為波特率為500kbps#include unsigned char MST_Data, SLV_Data;int main(void) volatile unsigned int i; WDTCTL = WDTPW + WDTHOLD; / Stop watchdog timer UCA0CTL1 |= UCSWRST; P

26、1OUT = 0 x00; / P1 setup for LED & reset output P1DIR |= BIT0 + BIT5; / P1SEL = BIT1 + BIT2 + BIT4; P1SEL2 = BIT1 + BIT2 + BIT4; UCA0CTL0 |= UCCKPL + UCMSB + UCMST + UCSYNC; / 3-pin, 8-bit SPI master UCA0CTL1 |= UCSSEL_2; / SMCLK UCA0BR0 |= 0 x02; / /2 UCA0BR1 = 0; / UCA0MCTL = 0; / No modulatio

27、n UCA0CTL1 &= UCSWRST; / *Initialize USCI state machine* IE2 |= UCA0RXIE; / Enable USCI0 RX interruptP1OUT &= BIT5; / Now with SPI signals initialized, P1OUT |= BIT5; / reset slave _delay_cycles(75); / Wait for slave to initialize MST_Data = 0 x01; / Initialize data values SLV_Data = 0 x00;

28、UCA0TXBUF = MST_Data; / Transmit first character _bis_SR_register(LPM0_bits + GIE); / CPU off, enable interrupts#pragma vector=USCIAB0RX_VECTOR_interrupt void USCIA0RX_ISR(void) volatile unsigned int i; while (!(IFG2 & UCA0TXIFG); / USCI_A0 TX buffer ready? if (UCA0RXBUF = SLV_Data) / Test for correct character RXd P1OUT |= BIT0; / If correct, light LED else P1OUT &= BIT0; / If incorrect, clear LED MST_Data+; / Increment

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論