NRF24L01無線收發的ARM程序_第1頁
NRF24L01無線收發的ARM程序_第2頁
NRF24L01無線收發的ARM程序_第3頁
NRF24L01無線收發的ARM程序_第4頁
NRF24L01無線收發的ARM程序_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

#include"systemInit.h"#include"buzzer.h"#include"uartGetPut.h"#include<stdio.h>#include<string.h>typedefunsignedcharuchar;typedefunsignedcharuint;//*定義KEY#defineKEY_PERIPHSYSCTL_PERIPH_GPIOG#defineKEY_PORTGPIO_PORTG_BASE#defineKEY_PINGPIO_PIN_5voidbuzzer00(){unsignedintx;buzzerInit();//蜂鳴器初始化for(x=6666;x>6333;x--){buzzerSound(x);SysCtlDelay(1*(TheSysClock/6000));}for(x=6333;x<6666;x++){buzzerSound(x);SysCtlDelay(1*(TheSysClock/3000));}//GPIOPinWrite(GPIO_PORTG_BASE,GPIO_PIN_2,0x00);buzzerQuiet();}/*voidbuzzer11(){buzzer00();buzzer00();buzzer00();buzzerSound(200);SysCtlDelay(100*(TheSysClock/3000));buzzerQuiet();}voidbuzzer1(){unsignedintx;buzzerInit();//蜂鳴器初始化for(x=1333;x>888;x--){buzzerSound(x);SysCtlDelay(1*(TheSysClock/6000));}for(x=888;x<1333;x++){buzzerSound(x);SysCtlDelay(1*(TheSysClock/3000));}//GPIOPinWrite(GPIO_PORTG_BASE,GPIO_PIN_2,0x00);buzzerQuiet();}*///臨時*///NRF24L01端口定義輸出型#defineCE_PERIPHSYSCTL_PERIPH_GPIOA#defineCE_PORTGPIO_PORTA_BASE#defineCE_PINGPIO_PIN_3//sbitCE=P1^1;//PA3#defineMOSI_PERIPHSYSCTL_PERIPH_GPIOA#defineMOSI_PORTGPIO_PORTA_BASE#defineMOSI_PINGPIO_PIN_1//sbitMOSI=P1^4;//PA1#defineSCK_PERIPHSYSCTL_PERIPH_GPIOA#defineSCK_PORTGPIO_PORTA_BASE#defineSCK_PINGPIO_PIN_2//sbitSCK=P1^3;//PA2#defineCSN_PERIPHSYSCTL_PERIPH_GPIOA#defineCSN_PORTGPIO_PORTA_BASE#defineCSN_PINGPIO_PIN_4//sbitCSN=P1^2;//PA4//nrf905狀態標志讀入型#defineMISO_PERIPHSYSCTL_PERIPH_GPIOA//sbitMISO=P1^5;//PA0#defineMISO_PORTGPIO_PORTA_BASE#defineMISO_PINGPIO_PIN_0#defineIRQ_PERIPHSYSCTL_PERIPH_GPIOG#defineIRQ_PORTGPIO_PORTG_BASE#defineIRQ_PINGPIO_PIN_4//sbitIRQ=P1^6;//PG4/************************************按鍵***************************************************sbit KEY1=P3^6;sbit KEY2=P3^7;************************************數碼管位選*********************************************sbit led3=P2^0;sbit led2=P2^1;sbit led1=P2^2;sbit led0=P2^3;************************************蜂明器***************************************************sbit BELL=P3^4;***********************************數碼管0-9編碼*******************************************ucharseg[10]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//0~~9段碼*********************************************NRF24L01*************************************/#defineTX_ADR_WIDTH5 //5uintsTXaddresswidth#defineRX_ADR_WIDTH5 //5uintsRXaddresswidth#defineTX_PLOAD_WIDTH20 //20uintsTXpayload//打包長度#defineRX_PLOAD_WIDTH20 //20uintsTXpayloaducharTX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //本地地址ucharRX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //接收地址//***************************************NRF24L01寄存器指令*******************************************************//SPI指令#defineREAD_REG0x00 //讀寄存器指令000AAAAAAAAAA指出讀操作的寄存器地址#defineWRITE_REG0x20 //寫寄存器指令001AAAAAAAAAA指出寫操作的寄存器地址,只能在掉電或待機模式下操作#defineRD_RX_PLOAD0x61 //讀取接收數據指令01100001讀RX有效數據,1~32字節。讀操作全部從字節0開始,用于接收模式下#defineWR_TX_PLOAD0xA0 //寫待發數據指令10100000寫TX有效數據,1~32字節。寫操作全部從字節0開始,用于發射模式下#defineFLUSH_TX0xE1 //沖洗發送FIFO指令即清除TXFIFO寄存器,應用于發射模式下#defineFLUSH_RX0xE2 //沖洗接收FIFO指令RX接收#defineREUSE_TX_PL0xE3 //定義重復裝載數據指令#defineNOP0xFF //保留空操作,可用來讀寄存器//*************************************SPI(nRF24L01)寄存器地址****************************************************#defineCONFIG0x00//配置收發狀態,CRC校驗模式以及收發狀態響應方式#defineEN_AA0x01//自動應答功能設置#defineEN_RXADDR0x02//可用信道設置#defineSETUP_AW0x03//收發地址寬度設置#defineSETUP_RETR0x04//自動重發功能設置#defineRF_CH0x05//工作頻率設置#defineRF_SETUP0x06//發射速率、功耗功能設置#defineSTATUS0x07//狀態寄存器#defineOBSERVE_TX0x08//發送監測功能#defineCD0x09//地址檢測#defineRX_ADDR_P00x0A//頻道0接收數據地址#defineRX_ADDR_P10x0B//頻道1接收數據地址#defineRX_ADDR_P20x0C//頻道2接收數據地址#defineRX_ADDR_P30x0D//頻道3接收數據地址#defineRX_ADDR_P40x0E//頻道4接收數據地址#defineRX_ADDR_P50x0F//頻道5接收數據地址#defineTX_ADDR0x10//發送地址寄存器#defineRX_PW_P00x11//接收頻道0接收數據長度#defineRX_PW_P10x12//接收頻道1接收數據長度#defineRX_PW_P20x13//接收頻道2接收數據長度#defineRX_PW_P30x14//接收頻道3接收數據長度#defineRX_PW_P40x15//接收頻道4接收數據長度#defineRX_PW_P50x16//接收頻道5接收數據長度#defineFIFO_STATUS0x17//FIFO棧入棧出狀態寄存器設置//**************************************************************************************voidDelay(unsignedints);voidinerDelay_us(unsignedcharn);voidinit_NRF24L01(void);uintSPI_RW(unsignedintuar);ucharSPI_Read(unsignedcharreg);voidSetRX_Mode(void);uintSPI_RW_Reg(unsignedcharreg,unsignedcharvalue);uintSPI_Read_Buf(unsignedcharreg,unsignedchar*pBuf,unsignedcharuchars);uintSPI_Write_Buf(unsignedcharreg,unsignedchar*pBuf,unsignedcharuchars);unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf);voidnRF24L01_TxPacket(unsignedchar*tx_buf);//*****************************************長延時*****************************************voidDelay(unsignedints){ unsignedinti; for(i=0;i<s;i++); for(i=0;i<s;i++);}/******************************************************************************************uint bdatasta;//狀態標志sbit RX_DR =sta^6;sbit TX_DS =sta^5;sbit MAX_RT =sta^4;*******************************************************************************************/unsignedcharsta;//什么意思?#defineRX_DR(sta&0x40)//sta^6;//sta&01000000明顯不是6、5、4#defineTX_DR(sta&0x20)//sta^5;//sta&00100000#defineMAX_RT(sta&0x10)//sta^4;//sta&00010000/******************************************************************************************延時函數******************************************************************************************/voidinerDelay_us(unsignedcharn){ for(;n>0;n--){n++;n--;} //_nop_();}/****************************************************************************************NRF24L01初始化****************************************************************************************/voidinit_NRF24L01(void){SysCtlPeriEnable(CE_PERIPH);//使能CE所在的GPIO端口GPIOPinTypeOut(CE_PORT,CE_PIN);//設置CE所在的管腳為輸出SysCtlPeriEnable(MOSI_PERIPH);//使能MOSI所在的GPIO端口GPIOPinTypeOut(MOSI_PORT,MOSI_PIN);//設置MOSI所在的管腳為輸出SysCtlPeriEnable(SCK_PERIPH);//使能SCK所在的GPIO端口GPIOPinTypeOut(SCK_PORT,SCK_PIN);//設置SCK所在的管腳為輸出SysCtlPeriEnable(CSN_PERIPH);//使能CSN所在的GPIO端口GPIOPinTypeOut(CSN_PORT,CSN_PIN);//設置CSN所在的管腳為輸出SysCtlPeriEnable(MISO_PERIPH);//使能MISO所在的GPIO端口GPIOPinTypeIn(MISO_PORT,MISO_PIN);//設置MISO所在管腳為輸入SysCtlPeriEnable(IRQ_PERIPH);//使能IRQ所在的GPIO端口GPIOPinTypeIn(IRQ_PORT,IRQ_PIN);//設置IRQ所在管腳為輸入inerDelay_us(200); GPIOPinWrite(CE_PORT,CE_PIN,~CE_PIN);//CE=0;//chipenable使能芯片 GPIOPinWrite(CSN_PORT,CSN_PIN,CSN_PIN);//CSN=1;//Spidisable禁止SpiCSN為低時,Spi等待接收 GPIOPinWrite(SCK_PORT,SCK_PIN,~SCK_PIN);//SCK=0;// SPI_Write_Buf(WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);//寫本地地址 SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,RX_ADDRESS,RX_ADR_WIDTH);//寫接收端地址 SPI_RW_Reg(WRITE_REG+EN_AA,0x01);//頻道0自動 ACK應答允許 SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);//允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG+RF_CH,0);//設置信道工作為2.4GHZ,收發必須一致 SPI_RW_Reg(WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//設置接收數據長度,本次設置為32字節 SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07); //設置發射速率為1MHZ,發射功率為最大值0dB}/****************************************************************************************************函數:uintSPI_RW(uintuchar)功能:NRF24L01的SPI寫時序****************************************************************************************************/uintSPI_RW(unsignedintuar){ unsignedintbit_ctr; for(bit_ctr=0;bit_ctr<8;bit_ctr++)//output8-bit8位輸出 {if((uar&0x80))//MOSI=(uchar&0x80);//output'uchar',MSBtoMOSI{GPIOPinWrite(MOSI_PORT,MOSI_PIN,MOSI_PIN);//MOSI=1;}else{GPIOPinWrite(MOSI_PORT,MOSI_PIN,~MOSI_PIN);//MOSI=0;} //下面先移位將MOSI左移到uar第二位,再將MISO放在uar第一位 uar=(uar<<1);//shiftnextbitintoMSB.. GPIOPinWrite(SCK_PORT,SCK_PIN,SCK_PIN);//SCK=1;//SetSCKhigh..if(GPIOPinRead(MISO_PORT,MISO_PIN))//uchar|=MISO;//capturecurrentMISObit捕捉當前MISO{uar|=0x01;} GPIOPinWrite(SCK_PORT,SCK_PIN,~SCK_PIN);//SCK=0;//..thensetSCKlowagain }return(uar); //returnreaduchar}/****************************************************************************************************函數:ucharSPI_Read(ucharreg)功能:NRF24L01的SPI讀時序****************************************************************************************************/ucharSPI_Read(unsignedcharreg){ unsignedcharreg_val; GPIOPinWrite(CSN_PORT,CSN_PIN,~CSN_PIN);//CSN=0;//CSNlow,initializeSPIcommunication...SPI等待接收數據 SPI_RW(reg);//Selectregistertoreadfrom..選擇寄存器 reg_val=SPI_RW(0);//..thenreadregistervalue讀取寄存器數值 GPIOPinWrite(CSN_PORT,CSN_PIN,CSN_PIN);//CSN=1;//CSNhigh,terminateSPIcommunication終止SPI return(reg_val);//returnregistervalue返回寄存器數值}/****************************************************************************************************函數:uintSPI_RW_Reg(unsignedcharreg,unsignedcharvalue)功能:NRF24L01讀寫寄存器函數reg:命令value:what?****************************************************************************************************/uintSPI_RW_Reg(unsignedcharreg,unsignedcharvalue){ unsignedintstatus; GPIOPinWrite(CSN_PORT,CSN_PIN,~CSN_PIN);//CSN=0;//CSNlow,initSPItransaction status=SPI_RW(reg);//selectregister SPI_RW(value);//..andwritevaluetoit.. GPIOPinWrite(CSN_PORT,CSN_PIN,CSN_PIN);//CSN=1;//CSNhighagain return(status);//returnnRF24L01statusuchar}/****************************************************************************************************函數:uintSPI_Read_Buf(ucharreg,uchar*pBuf,ucharuchars)功能:用于讀數據,reg:為寄存器地址,pBuf:為待讀出數據地址,uchars:讀出數據的個數****************************************************************************************************/uintSPI_Read_Buf(unsignedcharreg,unsignedchar*pBuf,unsignedcharuchars){ unsignedintstatus,uchar_ctr; GPIOPinWrite(CSN_PORT,CSN_PIN,~CSN_PIN);//CSN=0; //SetCSNlow,initSPItranaction status=SPI_RW(reg); //Selectregistertowritetoandreadstatusuchar for(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++) pBuf[uchar_ctr]=SPI_RW(0);//讀寄存器的值 GPIOPinWrite(CSN_PORT,CSN_PIN,CSN_PIN);//CSN=1; return(status);//returnnRF24L01statusuchar}/*********************************************************************************************************函數:uintSPI_Write_Buf(ucharreg,uchar*pBuf,ucharuchars)功能:用于寫數據:reg為寄存器地址,pBuf:為待寫入數據地址,uchars:寫入數據的個數*********************************************************************************************************/uintSPI_Write_Buf(unsignedcharreg,unsignedchar*pBuf,unsignedcharuchars){ unsignedintstatus,uchar_ctr; GPIOPinWrite(CSN_PORT,CSN_PIN,~CSN_PIN);//CSN=0;//SPI使能 status=SPI_RW(reg); for(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++)// SPI_RW(*pBuf++); GPIOPinWrite(CSN_PORT,CSN_PIN,CSN_PIN);//CSN=1;//關閉SPI return(status);//}/****************************************************************************************************函數:voidSetRX_Mode(void)功能:數據接收配置****************************************************************************************************/voidSetRX_Mode(void){ GPIOPinWrite(CE_PORT,CE_PIN,~CE_PIN);//CE=0;使能芯片SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);//向通道0接受地址寫入發送節點地址 SPI_RW_Reg(WRITE_REG+EN_AA,0x01);//EnableAuto.Ack:Pipe0//頻道0自動 ACK應答允許 SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);//EnablePipe0//允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG+RF_CH,40);//SelectRFchannel40?????//設置信道工作為2.4GHZ,收發必須一致 SPI_RW_Reg(WRITE_REG+RX_PW_P0,TX_PLOAD_WIDTH);//SelectsameRXpayloadwidthasTXPayloadwidth SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07);//TX_PWR:0dBm,Datarate:2Mbps,LNA:HCURR //SPI_RW_Reg(WRITE_REG+CONFIG,0x0F);//SetPWR_UPbit,enableCRC(2bytes)&Prim:RX.RX_DRenabled.. SPI_RW_Reg(WRITE_REG+CONFIG,0x0F); //IRQ收發完成中斷響應,16位CRC ,主接收 GPIOPinWrite(CE_PORT,CE_PIN,CE_PIN);//CE=1; inerDelay_us(230);}/******************************************************************************************************函數:unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf)功能:數據讀取后放如rx_buf接收緩沖區中******************************************************************************************************/unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf){unsignedcharrevale=0; sta=SPI_Read(STATUS); //讀取狀態寄存其來判斷數據接收狀況 if(RX_DR) //判斷是否接收到數據 { GPIOPinWrite(CE_PORT,CE_PIN,~CE_PIN);//CE=0; //SPI使能 SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);//readreceivepayloadfromRX_FIFObuffer revale=1; //讀取數據完成標志 } SPI_RW_Reg(WRITE_REG+STATUS,sta);//接收到數據后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標志 returnrevale;}/***********************************************************************************************************函數:voidnRF24L01_TxPacket(unsignedchar*tx_buf)功能:發送tx_buf中數據**********************************************************************************************************/voidnRF24L01_TxPacket(unsignedchar*tx_buf){ GPIOPinWrite(CE_PORT,CE_PIN,~CE_PIN);//CE=0; //StandByI模式 SPI_Write_Buf(WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);//WritesTX_AddresstonRF24L01 SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);//RX_Addr0sameasTX_AdrforAuto.Ack SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH);//WritesdatatoTXpayload SPI_RW_Reg(WRITE_REG+EN_AA,0x01);//EnableAuto.Ack:Pipe0 SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);//EnablePipe0 SPI_RW_Reg(WRITE_REG+SETUP_RETR,0x1A);//500us+86us,10retrans... SPI_RW_Reg(WRITE_REG+RF_CH,40);//SelectRFchannel40 SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07);//TX_PWR:0dBm,Datarate:2Mbps,LNA:HCURR SPI_RW_Reg(WRITE_REG+CONFIG,0x0E);//SetPWR_UPbit,enableCRC(2bytes)&Prim:TX.MAX_RT&TX_DSenabled.. //SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);//裝載接收端地址 //SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH); //裝載數據 //SPI_RW_Reg(WRITE_REG+CONFIG,0x0E); //IRQ收發完成中斷響應,16位CRC,主發送 GPIOPinWrite(CE_PORT,CE_PIN,CE_PIN);//CE=1; //置高CE,激發數據發送 inerDelay_us(100);}//************************************主函數************************************************************voidmain(void){jtagWait();//防止JTAG失效,重要!clockInit();//時鐘初始化:晶振,6MHzuartInit();//UART初始化SysCtlPeriEnable(KEY_PERIPH);//使能KEY所在的GPIO端口GPIOPinTypeIn(KEY_PORT,KEY_PIN);//設置KEY所在管腳為輸入PG5chari=0;chars[2];// unsignedchartf=0; unsignedcharTxBuf[3]={'3','4','5'}; unsignedcharRxBuf[2]={0}; init_NRF24L01();//初始化 //led0=0;led1=0;led2=0;led3=0; //P0=0x00; //TxBuf[1]=1; //TxBuf[2]=1; nRF24L01_TxPacket(TxBuf);//發送tx_buf中數據SetRX_Mode();//數據接收配置 nRF24L01_RxPacket(RxBuf);//數據讀取后放如rx_buf接收緩沖區中 Delay(60000); //P0=0xBF;uartPuts("OK\r\n");//uartput發送字符串 while(1)//死循環? {/*********************************************************發送***********************************/if(GPIOPinRead(KEY_PORT,KEY_PIN)==0x00)//如果按下key{TxBuf[1]=0x65;tf=1;}else{} if(tf==1)//按下key之后才能執行,參看上個IF{ nRF24L01_RxPacket(RxBuf);//數據讀取后放如rx_buf接收緩沖區中nRF24L01_TxPacket(TxBuf); //發送tx_buf中數據TxBuf[1]=0x32;tf=0;Delay(10000);}/**********************************************************接收*********************************/ SetRX_Mode();//數據接收配置 nRF24L01_RxPacket(RxBuf);//數據讀取后放如rx_buf接收緩沖區中Delay(200);for(i=0;i<2;i++) {s[i]=RxBuf[i];if(RxBuf[i]==0x65){ buzzer00();uartPuts("0x35\r\n");} } Delay(10000);SysCtlDelay(500*(TheSysClock/3000));uartPuts(s);/**********************************************************************************************/ } }#include"systemInit.h"http://定義全局的系統時鐘變量unsignedlongTheSysClock=12000000UL;//定義KEY#defineKEY_PERIPHSYSCTL_PERIPH_GPIOG#defineKEY_PORTGPIO_PORTG_BASE#defineKEY_PINGPIO_PIN_5/***************************************************************************************************功能:防止JTAG失效參數:無返回:無***************************************************************************************************/voidjtagWait(void){SysCtlPeriEnable(KEY_PERIPH);//使能KEY所在的GPIO端口GPIOPinTypeIn(KEY_PORT,KEY_PIN);//設置KEY所在管腳為輸入if(GPIOPinRead(KEY_PORT,KEY_PIN)==0x00)//若復位時按下KEY,則進入{for(;;);//死循環,以等待JTAG連接}SysCtlPeriDisable(KEY_PERIPH);//禁止KEY所在的GPIO端口}/***************************************************************************************************功能:系統時鐘初始化參數:無返回:無***************************************************************************************************/voidclockInit(void){SysCtlLDOSet(SYSCTL_LDO_2_50V);//設置LDO輸出電壓SysCtlClockSet(SYSCTL_USE_OSC|//系統時鐘設置SYSCTL_OSC_MAIN|//采用主振蕩器SYSCTL_XTAL_6MHZ|//外接6MHz晶振SYSCTL_SYSDIV_1);//不分頻/*SysCtlLDOSet(SYSCTL_LDO_2_75V);//配置PLL前須將LDO設為2.75VSysCtlClockSet(SYSCTL_USE_PLL|//系統時鐘設置,采用PLLSYSCTL_OSC_MAIN|//主振蕩器SYSCTL_XTAL_6MHZ|//外接6MHz晶振SYSCTL_SYSDIV_10);//分頻結果為20MHz*/TheSysClock=SysCtlClockGet();//獲取當前的系統時鐘頻率}#include"uartGetPut.h"#include"buzzer.h"#include<hw_types.h>#include<hw_memmap.h>#include<sysctl.h>#include<gpio.h>#include<uart.h>#include<ctype.h>#defineSysCtlPeriEnableSysCtl

溫馨提示

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

評論

0/150

提交評論