




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、24l01的多機(jī)通信采用頻分多子的方法,只需要在接受端對(duì)不同的通道配置地址即可。發(fā)送端使用相應(yīng)的地址作為本機(jī)地址。接受數(shù)據(jù)時(shí)通過讀取STATUS中相關(guān)位即可得知接收的是哪個(gè)通道的數(shù)據(jù)。以下僅給出多對(duì)一的通信代碼。至于一對(duì)多,以及多對(duì)多等情況讀者可以自行研究了。只給出相關(guān)部分,其他部分請(qǐng)參考前兩篇文章-接受端-uint const ADDRESS0ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01; /頻道0接收地址uint const ADDRESS1ADR_WIDTH= 0xc4,0xc3,0xc2,0xc1,0xc0; /頻道1接收地址uchar who=0xff;/*
2、/*NRF24L01初始化/*/void init_NRF24L01(void) us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / Spi clock line init high/SPI_Write_Buf(WRITE_REG + TX_ADDR,ADDRESS0, ADR_WIDTH); / 寫本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0,ADDRESS0,ADR_WIDTH); / 頻道0地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P1,ADDRESS1,A
3、DR_WIDTH); / 頻道1地址SPI_RW_Reg(WRITE_REG + EN_AA, 0x03); /頻道0、1自動(dòng)應(yīng)答 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x03); /允許頻道0、1 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /0接收數(shù)據(jù)長度SPI_RW_Reg(WRITE_REG + RX_PW_P1, RX_PLOAD_WIDTH); /1接收數(shù)據(jù)長度SPI_RW_Reg(W
4、RITE_REG + RF_SETUP, 0x07); /設(shè)置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB/*/*函數(shù):unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)/*功能:數(shù)據(jù)讀取后放如rx_buf接收緩沖區(qū)中/*/unsigned char nRF24L01_RxPacket(unsigned char* rx_buf) unsigned char revale=0;sta=SPI_Read(STATUS); / 讀取狀態(tài)寄存其來判斷數(shù)據(jù)接收狀況if(RX_DR) / 判斷是否接收到數(shù)據(jù) CE = 0; SPI_Read_Buf
5、(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH); revale =1; who=sta&0x0e; who|=0xf0; /通道0:who=0xf0;通道1:who=0xf2SPI_RW_Reg(WRITE_REG+STATUS,0xff); /接收到數(shù)據(jù)后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標(biāo)志CSN=0;SPI_RW(FLUSH_RX);CSN=1;return revale;void main(void)uchar i;uchar RxBufTX_PLOAD_WIDTH; init_NRF24L01() ;StartUART();ms
6、(6000);while(1) /如果接收到數(shù)據(jù),發(fā)往PC SetRX_Mode(); if(nRF24L01_RxPacket(RxBuf) R_S_Byte(who); ms(10000); for(i=0;iTX_PLOAD_WIDTH;i+) R_S_Byte(RxBufi); ms(10000); -發(fā)送1-uint const ADDRESS0ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;其余與雙工通信相同-發(fā)送2-uint const ADDRESS1ADR_WIDTH= 0xc4,0xc3,0xc2,0xc1,0xc0; /頻道1接收地址其余與雙工通信
7、相同以上就是簡(jiǎn)要的代碼。也是重要的地方。如果發(fā)送端要發(fā)送數(shù)據(jù)的話,可能在配置自動(dòng)應(yīng)答的接受地址時(shí)會(huì)遇到一些問題。(因?yàn)槭且酝ǖ?作為應(yīng)答通道,而發(fā)送模式又必須使得接收發(fā)送地址一致,這樣給兩臺(tái)發(fā)送機(jī)發(fā)數(shù)據(jù)就要對(duì)0實(shí)時(shí)配置地址)筆者嘗試過配置,沒有成功,只好不配置了,都是這樣接收端無法接收到自動(dòng)應(yīng)答的信號(hào)24l01雙向通訊2010-11-19 21:28 一周的時(shí)間過去了,終于搞出來了雙向通訊,中間出了點(diǎn)莫名奇妙的情況,導(dǎo)致我迷惘了很久。 上次發(fā)的頭文件和.c文件有個(gè)模式設(shè)置的選項(xiàng)。在做雙向通信的時(shí)候發(fā)現(xiàn)這個(gè)有點(diǎn)多余。所以就刪掉了,內(nèi)容也做了些小改動(dòng)。所以就只發(fā)修改的部分-24l01.h-這個(gè)文件
8、和之前的一樣。只去掉/模式選擇/#define RMODE#define TMODE這幾行-24l01.c-修改了三個(gè)地方。分別是1、/*/*NRF24L01初始化/*這里不用設(shè)置什么模式,等需要接受或發(fā)送數(shù)據(jù)時(shí)指定模式/*/void init_NRF24L01(void) us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / Spi clock line init highSPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 寫本地地址 SPI_Write
9、_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 寫接收端地址SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 頻道0自動(dòng) ACK應(yīng)答允許 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /設(shè)置接
10、收數(shù)據(jù)長度,本次設(shè)置為32字節(jié)SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /設(shè)置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB2、/*/*函數(shù):void SetRX_Mode(void)/*功能:數(shù)據(jù)接收配置 /*/void SetRX_Mode(void)CE=0;SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); / IRQ收發(fā)完成中斷響應(yīng),16位CRC ,主接收CE = 1; us(130);3、/*/*函數(shù):void nRF24L01_TxPacket(unsigned char * tx_buf)/*功能:發(fā)送 tx_buf中數(shù)
11、據(jù)/*/void nRF24L01_TxPacket(unsigned char * tx_buf)CE=0; /StandBy I模式 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); / 裝載接收端地址SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); / 裝載數(shù)據(jù) SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); / IRQ收發(fā)完成中斷響應(yīng),16位CRC,主發(fā)送CE=1; /置高CE,激發(fā)數(shù)據(jù)發(fā)送us(10);-以上就是全部的修改。
12、這兩個(gè)文件同樣適用于單工通信。以下給出這次測(cè)試用的兩個(gè)主函數(shù)。為了方便與上次的文章對(duì)應(yīng)。這里還是以接收,發(fā)送區(qū)分。-接收-#include nrf24l01.h#include delay.huchar TxBufTX_PLOAD_WIDTH=0x55,0xaa;/*串口初始化*void StartUART( void ) /波特率2400 SCON = 0x50; TMOD = 0x20; TH1 = 0xF3; TL1 = 0xF3; PCON = 0x00; TR1 = 1;/*通過串口將接收到數(shù)據(jù)發(fā)送給PC端*void R_S_Byte(uchar R_Byte) SBUF = R_B
13、yte; while( TI = 0 ); /查詢法TI = 0; /*主函數(shù)*void main(void)uchar i;uchar RxBufTX_PLOAD_WIDTH; init_NRF24L01() ;StartUART();ms(6000);while(1) /如果接收到數(shù)據(jù),發(fā)往PC SetRX_Mode(); if(nRF24L01_RxPacket(RxBuf) for(i=0;iTX_PLOAD_WIDTH;i+) R_S_Byte(RxBufi); /發(fā)送0x55,0xaa要求發(fā)送端發(fā)數(shù)據(jù) nRF24L01_TxPacket(TxBuf); /SPI_RW_Reg(WR
14、ITE_REG+STATUS,0XFF); 加上這句后,會(huì)出現(xiàn)接收到幾組數(shù)據(jù)后停止了接收的現(xiàn)象,原因未知 ms(130);/這個(gè)延時(shí)很重要,延時(shí)過短,數(shù)據(jù)包丟失。 /延時(shí)過長,減慢速度,甚至無法接收(實(shí)驗(yàn)時(shí)出現(xiàn)的問題,原因未知) RxBuf0=0; RxBuf1=0; -發(fā)送-include nrf24l01.h#include delay.huchar TxBufTX_PLOAD_WIDTH=0x01,0x02;void main() char RxBufTX_PLOAD_WIDTH=0;init_NRF24L01() ;nRF24L01_TxPacket(TxBuf);ms(6000);w
15、hile(1) SetRX_Mode(); if(nRF24L01_RxPacket(RxBuf) /將收到的數(shù)據(jù)發(fā)回接收端檢驗(yàn)是否正確 /如果設(shè)置的數(shù)據(jù)較長,應(yīng)使用for循環(huán) TxBuf0=RxBuf0; TxBuf1=RxBuf1; nRF24L01_TxPacket(TxBuf); SPI_RW_Reg(WRITE_REG+STATUS,0XFF); ms(90);/這個(gè)延時(shí)一樣很重要 RxBuf0=0; RxBuf1=0; -以上就是這周忙活的東西了,高手不要見笑。PS:原先想要使用自動(dòng)重發(fā)功能的,結(jié)果發(fā)現(xiàn)自動(dòng)重發(fā)的話,傳輸速率很慢,沒有延時(shí)的快。也可能是我自動(dòng)重發(fā)的延時(shí)沒設(shè)置好。另外
16、最開始幾天一直在做中斷通信,如果使用IRQ上中斷來接受數(shù)據(jù),可以明顯減輕MCU的負(fù)擔(dān)??墒俏覝y(cè)試了幾天下來發(fā)現(xiàn)一個(gè)無語的結(jié)果。在中斷里讀出來的STATUS 的值是0x00,頓時(shí)心灰意冷。網(wǎng)上有其他人貌似做出來了,可惜我寫的跟他們一樣也不行啊,不知道問題在哪。但有一點(diǎn)是肯定的:接收到數(shù)據(jù)時(shí)必然引起中斷。過幾天繼續(xù)貼出多機(jī)通信的代碼。nrf24l01的51驅(qū)動(dòng)程序2010-11-13 18:58 隨著物聯(lián)網(wǎng)時(shí)代的到來,無線通信技術(shù)日趨重要。 nrf24l01是適合初學(xué)入門的無線模塊。于是乎我就一頭埋進(jìn)去,苦干一周有余。發(fā)現(xiàn)網(wǎng)上的程序都是抄來抄去的,不甚寒心。抄也就算了,光抄錯(cuò)的!后來自己動(dòng)手研究,
17、完成了SPI接口的操作,繼續(xù)攻克無線模塊,最終無果,只好再找代碼。終于找到了一個(gè)可以的。 本來想直接貼出來的,但為了許多和我曾經(jīng)一樣迷茫的同胞可以順利進(jìn)入無線領(lǐng)域。我特意修改代碼,整理出nrf24l01.h與nrf24l01.c,一則便于模塊化管理,二則,便于使用,便于二次開發(fā)。同時(shí),增加了許多注釋。 代碼中應(yīng)該還有許多不足的,甚至多余的東西,后續(xù)將會(huì)繼續(xù)發(fā)表一篇關(guān)于無線模塊開發(fā)的注意事項(xiàng)。/-nrf24l01.h-#ifndef NRF24L01_H#define NRF24L01_H#include /模式選擇/#define RMODE#define TMODEtypedef unsig
18、ned char uchar;typedef unsigned char uint;/*SPI-IO端口*sbit CE = P10;/3sbit SCK = P11;/5sbit MISO = P12;/7sbit CSN = P15;/4sbit MOSI = P16;/6sbit IRQ = P17;/8/*地址、數(shù)據(jù)長度*#define TX_ADR_WIDTH 5 / 5 uints TX address width#define RX_ADR_WIDTH 5 / 5 uints RX address width#define TX_PLOAD_WIDTH 32 / 20 uints
19、 TX payload#define RX_PLOAD_WIDTH 32 / 20 uints TX payload/*NRF24L01寄存器指令*#define READ_REG 0x00 / 讀寄存器指令#define WRITE_REG 0x20 / 寫寄存器指令#define RD_RX_PLOAD 0x61 / 讀取接收數(shù)據(jù)指令#define WR_TX_PLOAD 0xA0 / 寫待發(fā)數(shù)據(jù)指令#define FLUSH_TX 0xE1 / 沖洗發(fā)送 FIFO指令#define FLUSH_RX 0xE2 / 沖洗接收 FIFO指令#define REUSE_TX_PL 0xE3 /
20、 定義重復(fù)裝載數(shù)據(jù)指令#define NOP 0xFF / 保留/*SPI(nRF24L01)寄存器地址*#define CONFIG 0x00 / 配置收發(fā)狀態(tài),CRC校驗(yàn)?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式#define EN_AA 0x01 / 自動(dòng)應(yīng)答功能設(shè)置#define EN_RXADDR 0x02 / 可用信道設(shè)置#define SETUP_AW 0x03 / 收發(fā)地址寬度設(shè)置#define SETUP_RETR 0x04 / 自動(dòng)重發(fā)功能設(shè)置#define RF_CH 0x05 / 工作頻率設(shè)置#define RF_SETUP 0x06 / 發(fā)射速率、功耗功能設(shè)置#define STATU
21、S 0x07 / 狀態(tài)寄存器#define OBSERVE_TX 0x08 / 發(fā)送監(jiān)測(cè)功能#define CD 0x09 / 地址檢測(cè) #define RX_ADDR_P0 0x0A / 頻道0接收數(shù)據(jù)地址#define RX_ADDR_P1 0x0B / 頻道1接收數(shù)據(jù)地址#define RX_ADDR_P2 0x0C / 頻道2接收數(shù)據(jù)地址#define RX_ADDR_P3 0x0D / 頻道3接收數(shù)據(jù)地址#define RX_ADDR_P4 0x0E / 頻道4接收數(shù)據(jù)地址#define RX_ADDR_P5 0x0F / 頻道5接收數(shù)據(jù)地址#define TX_ADDR 0x10
22、/ 發(fā)送地址寄存器#define RX_PW_P0 0x11 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P1 0x12 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P2 0x13 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P3 0x14 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P4 0x15 / 接收頻道0接收數(shù)據(jù)長度#define RX_PW_P5 0x16 / 接收頻道0接收數(shù)據(jù)長度#define FIFO_STATUS 0x17 / FIFO棧入棧出狀態(tài)寄存器設(shè)置/*void init_NRF24L01(void);uint SPI_RW(
23、uint uchar);uchar SPI_Read(uchar reg);void SetRX_Mode(void);uint SPI_RW_Reg(uchar reg, uchar value);uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);void nRF24L01_TxPacket(unsigned
24、char * tx_buf);/*#endif/-nrf24l01.h結(jié)束-/-nrf24l01.c-#include nrf24l01.h#include delay.huint bdata sta; /狀態(tài)標(biāo)志sbit RX_DR =sta6;sbit TX_DS =sta5;sbit MAX_RT =sta4;uint const TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01; /本地地址uint const RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01; /接收地址/*/*NRF24
25、L01初始化/*/void init_NRF24L01(void) us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / Spi clock line init highSPI_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); / 頻
26、道0自動(dòng) ACK應(yīng)答允許 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /設(shè)置接收數(shù)據(jù)長度,本次設(shè)置為32字節(jié)SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /設(shè)置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB#ifdef RMODESPI_RW_Reg(WR
27、ITE_REG + CONFIG, 0x0f); / IRQ收發(fā)完成中斷響應(yīng),16位CRC ,主接收#endif#ifdef TMODESPI_RW_Reg(WRITE_REG + CONFIG, 0x0E); / IRQ收發(fā)完成中斷響應(yīng),16位CRC ,主接收#endif/*/*函數(shù):uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI寫時(shí)序/*/uint SPI_RW(uint uchar)uint bit_ctr; for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bit MOSI = (uchar & 0x80); /
28、output uchar, MSB to MOSI uchar = (uchar 1); / shift next bit into MSB. SCK = 1; / Set SCK high. uchar |= MISO; / capture current MISO bit SCK = 0; / .then set SCK low again return(uchar); / return read uchar/*/*函數(shù):uchar SPI_Read(uchar reg)/*功能:NRF24L01的SPI時(shí)序/*/uchar SPI_Read(uchar reg)uchar reg_val
29、;CSN = 0; / CSN low, initialize SPI communication.SPI_RW(reg); / Select register to read from.reg_val = SPI_RW(0); / .then read registervalueCSN = 1; / CSN high, terminate SPI communicationreturn(reg_val); / return register value/*/*功能:NRF24L01讀寫寄存器函數(shù)/*/uint SPI_RW_Reg(uchar reg, uchar value)uint st
30、atus;CSN = 0; / CSN low, init SPI transactionstatus = SPI_RW(reg); / select registerSPI_RW(value); / .and write value to it.CSN = 1; / CSN high againreturn(status); / return nRF24L01 status uchar/*/*函數(shù):uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能: 用于讀數(shù)據(jù),reg:為寄存器地址,pBuf:為待讀出數(shù)據(jù)地址,uchars
31、:讀出數(shù)據(jù)的個(gè)數(shù)/*/uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)uint status,uchar_ctr;CSN = 0; / Set CSN low, init SPI tranactionstatus = SPI_RW(reg); / Select register to write to and read status ucharfor(uchar_ctr=0;uchar_ctruchars;uchar_ctr+) pBufuchar_ctr = SPI_RW(0); / CSN = 1; return(status)
32、; / return nRF24L01 status uchar/*/*函數(shù):uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能: 用于寫數(shù)據(jù):為寄存器地址,pBuf:為待寫入數(shù)據(jù)地址,uchars:寫入數(shù)據(jù)的個(gè)數(shù)/*/uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)uint status,uchar_ctr;CSN = 0; /SPI使能 status = SPI_RW(reg); for(uchar_ctr=0; uchar_ctruchars; uchar
33、_ctr+) / SPI_RW(*pBuf+);CSN = 1; /關(guān)閉SPIreturn(status); / /*/*函數(shù):void SetRX_Mode(void)/*功能:數(shù)據(jù)接收配置 /*/void SetRX_Mode(void)CE=0;#ifdef TMODESPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); / IRQ收發(fā)完成中斷響應(yīng),16位CRC ,主接收#endifCE = 1; us(130);/*/*函數(shù):unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)/*功能:數(shù)據(jù)讀取后放如rx_b
34、uf接收緩沖區(qū)中/*/unsigned char nRF24L01_RxPacket(unsigned char* rx_buf) unsigned char revale=0;sta=SPI_Read(STATUS); / 讀取狀態(tài)寄存其來判斷數(shù)據(jù)接收狀況if(RX_DR) / 判斷是否接收到數(shù)據(jù) CE = 0; /SPI使能 SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);/ read receive payload from RX_FIFO buffer revale =1; /讀取數(shù)據(jù)完成標(biāo)志SPI_RW_Reg(WRITE_REG+ST
35、ATUS,sta); /接收到數(shù)據(jù)后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標(biāo)志return revale;/*/*函數(shù):void nRF24L01_TxPacket(unsigned char * tx_buf)/*功能:發(fā)送 tx_buf中數(shù)據(jù)/*/void nRF24L01_TxPacket(unsigned char * tx_buf)CE=0; /StandBy I模式 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); / 裝載接收端地址SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); / 裝載數(shù)據(jù)#ifdef RMODE SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); / IRQ收發(fā)完成中斷響應(yīng),16位CRC,主發(fā)送#endifCE=1; /置高CE,激發(fā)數(shù)據(jù)發(fā)送us(10);/-nrf24l01.c結(jié)束-文中用到的“delay.h”中一個(gè)us延時(shí),一個(gè)ms延時(shí),讀者可以自己寫。(由于晶振不同,延時(shí)函數(shù)不同,這里就不列出了)這兩個(gè)文件同時(shí)包含了收發(fā)模式。通過/模式選擇#define RMODE/#define TM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院感染防控應(yīng)急處置預(yù)案
- 公司股權(quán)分配及管理辦法
- 建筑工程項(xiàng)目報(bào)告
- 垃圾焚燒發(fā)電前景如何
- 電動(dòng)車公共充電樁使用方法
- 基于語音控制的智能家居
- 安全防護(hù)和文明施工措施
- 工程項(xiàng)目預(yù)算及費(fèi)用統(tǒng)計(jì)表
- 新能源車輛推廣與應(yīng)用戰(zhàn)略研究報(bào)告
- 銀行業(yè)務(wù)流程優(yōu)化與風(fēng)控管理方案
- 20240912工業(yè)互聯(lián)網(wǎng)及其驅(qū)動(dòng)的制造業(yè)數(shù)字化轉(zhuǎn)型
- 2024小米在線測(cè)評(píng)題
- 水果店員工手冊(cè)的標(biāo)準(zhǔn)模板
- 霧化吸入療法合理用藥專家共識(shí)(2024版)解讀
- 幼兒園小班安全《不在馬路上玩?!氛n件
- HAF102-2016核動(dòng)力廠設(shè)計(jì)安全規(guī)定
- 【天潤乳業(yè)公司盈利質(zhì)量現(xiàn)狀分析10000字】
- 走近湖湘紅色人物智慧樹知到答案2024年湖南工商大學(xué)
- 手術(shù)室管理和工作課件
- 第16課《動(dòng)物面具》(課件)-美術(shù)三年級(jí)下冊(cè)
- 行政許可決定審批表(事務(wù)文書模板)
評(píng)論
0/150
提交評(píng)論