版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)12——讀/寫內(nèi)部Flash卓越工程師培養(yǎng)系列本書獲深圳大學(xué)教材出版資助STM32F1開發(fā)標(biāo)準(zhǔn)教程01實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容向STM32內(nèi)部Flash起始地址為0x0800C000的存儲(chǔ)空間寫入“0xFFFFFFFF,OXFFEEFEFF”,合計(jì)8節(jié)按下按鍵KEY2,向STM32內(nèi)部ash起始地址為0x0800C000的存儲(chǔ)空間寫入“0x76543210,0x89ABCDEF”,合計(jì)8字節(jié);按下按鍵KEY3,讀取STM32內(nèi)部Fash起始地址為0x800C000的存儲(chǔ)空間中的數(shù)據(jù),依次讀出8字節(jié)數(shù)據(jù)圖13-1所示是向STM32內(nèi)部Flash起始地址為0x0800C000的存儲(chǔ)空間寫入“0x76543210,0x89ABCDEF”的示意圖。按下按鍵KEY102實(shí)驗(yàn)原理1.STM32的內(nèi)部Flash和內(nèi)部SRAMSTM32片內(nèi)自帶Flash和SRAM。Flash主要用于存儲(chǔ)程序。SRAM主要用于存儲(chǔ)程序運(yùn)行過程中的中間變量,通常不同型號(hào)STM32的Flash和SRAM大小是不相同的。Flash存儲(chǔ)器又稱為閃存,它與EEPROM都是掉電后數(shù)據(jù)不丟失的存儲(chǔ)器,但是Flash的存儲(chǔ)容量普遍大于EEPROM。另外,F(xiàn)lash的編程原理是寫1時(shí)保持該位為1不變,寫0時(shí)將原先的1改寫為0,因此,編程之前必須將對(duì)應(yīng)的塊擦除,而擦除的過程就是向該塊所有位寫入1,而EEPROM可以按照單字節(jié)進(jìn)行讀/寫。SRAM是靜態(tài)隨機(jī)存取存儲(chǔ)器,它是一種具有靜止存取功能的內(nèi)存,讀/寫速度都比Flash要快,但是掉電后數(shù)據(jù)會(huì)丟失,而且價(jià)格比Flash貴。2.STM32的內(nèi)部Flash簡(jiǎn)介STM32的內(nèi)部Flash地址起始于0x08000000結(jié)束地址是0x08000000加上芯片實(shí)際的Flash大小,不同的芯片內(nèi)部Flash容量大小也不同最小的有16KB,最大的有512KB。STM32核心板使用的STM32芯片型號(hào)為STM32F103RCT6,其內(nèi)部Flash容量為256KB(0x40000B),因此,該芯片的內(nèi)部Flash地址范圍為0x08000000~0x0803FFFF。按照不同容量,存儲(chǔ)器組織成32個(gè)1K字節(jié)/頁(yè)(小容量)、128個(gè)1K字節(jié)/頁(yè)(中容量)128個(gè)2K字節(jié)/頁(yè)(互聯(lián)型)256個(gè)2K字節(jié)/頁(yè)(大容量)的主存儲(chǔ)器塊和一個(gè)信息塊,表13-1是大容量產(chǎn)品閃存模塊組織。由于STM32F103RCT6屬于大容量產(chǎn)品,而且內(nèi)部Flash只有256KB,因此,STM32F103RCT6的內(nèi)部Flash只有頁(yè)0~127有效每頁(yè)的長(zhǎng)度為2KB。2.STM32的內(nèi)部Flash簡(jiǎn)介STM32的內(nèi)部Flash由主存儲(chǔ)器、信息塊和閃存存儲(chǔ)器接口寄存器3部分組成。主存儲(chǔ)器除了可以存儲(chǔ)程序之外,還可以存儲(chǔ)常數(shù)類型的數(shù)據(jù),當(dāng)然,也可以存儲(chǔ)掉電之后用戶依然需要使用的數(shù)據(jù),但是存儲(chǔ)地址一定要安排在程序存儲(chǔ)區(qū)之后,畢竟,對(duì)內(nèi)部Flash中的代碼區(qū)進(jìn)行修改,會(huì)導(dǎo)致意想不到的后果產(chǎn)生,有可能會(huì)導(dǎo)致整個(gè)STM32系統(tǒng)崩潰。2.STM32的內(nèi)部Flash簡(jiǎn)介信息塊由系統(tǒng)存儲(chǔ)器(0x1FFFFO00~0x1FFFF7FF)和選項(xiàng)字節(jié)(0x1FFFF800~0x1FFFF80F)組成。系統(tǒng)存儲(chǔ)器用于存放在系統(tǒng)存儲(chǔ)器自舉模式下的啟動(dòng)程序代碼(BootLoader),當(dāng)使用ISP方式下載程序時(shí),就是由這個(gè)程序執(zhí)行的,該區(qū)域由芯片廠寫入BootLoader,然后鎖死,用戶是無法改變的。選項(xiàng)字節(jié)存儲(chǔ)芯片的配置信息和對(duì)主存儲(chǔ)塊的保護(hù)信息。閃存存儲(chǔ)器接口寄存器包括FLASH_ACR、FLASH_KEYR、FLASH_OPTKEYR、FLASH_SR、FLASH_CR、FLASH_AR、FLASH_OBR和FLASH_WRPR,這些寄存器主要用于控制內(nèi)部Flash的讀/寫、指示內(nèi)部Flash的狀態(tài)等。3.STM32啟動(dòng)模式STM32有3種啟動(dòng)模式,通過BOOTO和BOOT1引腳進(jìn)行選擇,如表13-2所示。3啟動(dòng)模式對(duì)應(yīng)3種存儲(chǔ)介質(zhì),分別是內(nèi)部Flash、系統(tǒng)存儲(chǔ)器和內(nèi)部SRAM。當(dāng)BOOT=X、BOOT0=0時(shí),STM32從內(nèi)部Flash啟動(dòng),也就是從0x08000000開始運(yùn)行代碼,絕大多數(shù)情況下使用這種模式。當(dāng)BOOT1=0BOOTO=1時(shí),STM32從系統(tǒng)存儲(chǔ)器啟動(dòng):當(dāng)BOOT1=1.BOOT0=1時(shí),STM32從內(nèi)部SRAM啟動(dòng),這兩種模式主要用于調(diào)試。4.Flash編程過程Flash編程過程如圖13-2所示,下面對(duì)Flash的編程過程進(jìn)行說明。(1)讀FLASH_CR的LOCK位,并判斷LOCK位是否為1。(2)如果LOCK位為1表示Flash已上鎖通過向FLASH→KEYR依次寫入0x45670123和0xCDEF89AB執(zhí)行解鎖操作。(3)如果LOCK位為0,表示Flash未上鎖,接著就可以執(zhí)行寫Flash操作。(4)在執(zhí)行寫Flash操作之前,還需要將FLASH_CR的PG位置為1,該位相當(dāng)于編程操作使能位。(5)在指定的地址寫入字(4字節(jié))。4.Flash編程過程(6)檢查FLASH_SR的BSY位是否為1。(7)如果BSY位為1,即Flash正在執(zhí)行操作,繼續(xù)等待。(8)當(dāng)Flash完成操作后,即BSY位為0,讀編程地址并檢查寫入的數(shù)據(jù)。需要特別注意的是,BSY位為1時(shí),不能對(duì)任何寄存器執(zhí)行寫操作。5.Flash頁(yè)擦除過程Flash頁(yè)擦除過程如圖13-3所示,下面對(duì)Flash頁(yè)的擦除過程進(jìn)行說明。(1)讀FLASH_CR的LOCK位,并判斷LOCK位是否為1。(2)如果LOCK位為1表示Flash已上鎖通過向FLASH→KEYR依次寫入0x45670123和0xCDEF89AB執(zhí)行解鎖操作。(3)如果LOCK位為0,表示Flash未上鎖,接著就可以執(zhí)行Flash頁(yè)擦除操作。(4)在執(zhí)行Flash頁(yè)擦除操作之前,還需要將FLASH_CR的PER位置為1,該位相當(dāng)于頁(yè)擦除操作的使能位。5.Flash頁(yè)擦除過程(5)在FLASH_AR中選擇要擦除的頁(yè)。(6)將FLASH_CR的STRT位置為1,即執(zhí)行一次擦除操作。(7)檢查FLASH_SR的BSY位是否為1。(8)如果BSY位為1,即Flash正在執(zhí)行操作,繼續(xù)等待。(9)當(dāng)Flash完成操作后,即BSY位為0,讀出并驗(yàn)證被擦除頁(yè)的數(shù)據(jù)。6.Flash部分寄存器FLASH_ACR的結(jié)構(gòu)偏移地址和復(fù)位值如圖13-4所示對(duì)部分位的解釋說明如表13-3所示。1.閃存訪問控制寄存(FLASH_ACR)6.Flash部分寄存器FLASH_KEYR的結(jié)構(gòu)偏移地址和復(fù)位值如圖13-5所示對(duì)部分位的解釋說明如表13-4所示。2.FPEC鍵寄存器(FLASH_KEYR)6.Flash部分寄存器FLASH_OPTKEYR的結(jié)構(gòu)、偏移地址和復(fù)位值如圖13-6所示,對(duì)部分位的解釋說明如表13-5所示。3.閃存OPTKEY寄存器(FLASH_OPTKEYR)6.Flash部分寄存器FLASH_SR的結(jié)構(gòu)偏移地址和復(fù)位值如圖13-7所示,對(duì)部分的解釋說明如表13-6所示。4閃存狀態(tài)寄存器(FLASH_SR)6.Flash部分寄存器FLASH_CR的結(jié)構(gòu)、偏移地址和復(fù)位值如圖13-8所示,對(duì)部分位的解釋說明如表13-7所示。5閃存控制寄存器(FLASH_CR)6.Flash部分寄存器FLASH_AR的結(jié)構(gòu)、偏移地址和復(fù)位值如圖13-9所示,對(duì)部分位的解釋說明如表13-8所示。6.閃存地址寄存器(FLASH_AR)6.Flash部分寄存器FLASH_OBR的結(jié)構(gòu)偏移地址和復(fù)位值如圖13-10所示對(duì)部分位的解釋說明如表13-9所示。7.選項(xiàng)字節(jié)寄存器(FLASH_OBR)6.Flash部分寄存器FLASH_WRPR的結(jié)構(gòu)、偏移地址和復(fù)位值如圖13-11所示,對(duì)部分位的解釋說明如表13-10所示。8.寫保護(hù)寄存器(FLASH_WRPR)7.Flash部分固件庫(kù)函數(shù)FLASH_ProgramWord函數(shù)的功能是在指定地址編寫一個(gè)字。具體描述如表13-11所示。1.FLASH_ProgramWord7.Flash部分固件庫(kù)函數(shù)FLASH_Unlock函數(shù)的能是解鎖Flash編寫擦除控制器,通過向FLASH→KEYR和FLASH→CR寫入?yún)?shù)來實(shí)現(xiàn)。具體描述如表13-12所示。2.FLASH_Unlock7.Flash部分固件庫(kù)函數(shù)FLASH_ErasePage函數(shù)的功能是擦除一個(gè)Flash頁(yè)面,通過向FLASH→CR、FLASH→AR寫入?yún)?shù)來實(shí)現(xiàn)。具體描述如表13-13所示。3.FLASH_ErasePage7.Flash部分固件庫(kù)函數(shù)FLASH_Lock函數(shù)的功能是鎖定Flash編寫擦除控制器,通過向FLASH→CR寫入?yún)?shù)來實(shí)現(xiàn)。具體描述如表13-14所示。4.FLASH_Lock03實(shí)驗(yàn)步驟步驟1:首先,將“D:STM32KeilTestlMaterial12讀寫內(nèi)部Flash實(shí)驗(yàn)”文件夾復(fù)制到“D:STM32KeilTestProduct”文件夾中。然后,雙擊運(yùn)行“D:STM32KeilTestProduct12讀寫內(nèi)部Flash實(shí)驗(yàn)Project”文件夾中的STM32KeilPrjuvprojx,單擊工具欄中的按鈕。當(dāng)BuildOutput欄出現(xiàn)FromELF:creatinghexfile時(shí),表示已經(jīng)成功生成hex文件,出現(xiàn)0Error(s)Warning(s)表示編譯成功。最后,將axf文件下載到STM32的內(nèi)部Flash,觀察STM32核心板上的兩個(gè)LED是否交替閃爍。如果兩個(gè)LED交替閃爍,串口正常輸出字符串,表示原始工程是正確的,接著就可以進(jìn)入下一步操作。復(fù)制并編譯原始工程步驟2:首先將“D:STM32KeilTestProduct\12讀寫內(nèi)部Flash實(shí)驗(yàn)HWFlash”文件夾中的Flashc添加到HW分組,具體操作可參見2.3節(jié)步8然后,將“D:STM32KeilTestProduct12讀寫內(nèi)部Flash實(shí)驗(yàn)HWFlash”路徑添加到IncludePaths欄具體操作可參見2.3節(jié)步驟11。添加Flash文件對(duì)步驟3:單擊
按鈕進(jìn)行編譯,編譯結(jié)束后,在Proiect面板中,雙擊Flashc下的Flashh在Flashh文件的“包含頭文件”區(qū),添加代碼#include"DataTypeh”,然后在Flashh文件的“宏定義區(qū)添加Flash起始地址宏定義的代碼,如程序清單13-1所示。完善Flash.h文件步驟3:在Flashh文件的“API函數(shù)聲明”區(qū),添加如程序清單13-2所示的API函數(shù)聲明代碼InitFlash函數(shù)用于初始化Flash模塊,STM32FlashWriteWord函數(shù)用于寫內(nèi)部Flash,STM32FlashReadWord函數(shù)用于讀內(nèi)部Flash。完善Flash.h文件步驟4:在Flashc文件的“包含頭文件”區(qū),添加代碼#include"stm32f10x_confh",另外該模塊還使用了printf,因此還需要添加代碼#include"UART1.h”。在Flashc文件的“宏定義”區(qū),添加如程序清單13-3所示的宏定義代碼。FLASH_PAGE_SIZE是大容量STM32芯片1頁(yè)的大小2字節(jié)用十進(jìn)制表示是2048字節(jié),用十六進(jìn)制表示是0x0800字節(jié)。完善Flash.c文件步驟4:在Flashc文件的“內(nèi)部變量”區(qū),添加內(nèi)部變量的定義代碼,如程序清單13-4所示。s_arrFlashBuf數(shù)組用于存放1頁(yè)數(shù)據(jù),這里以字(32位)為單位,因此,s_arrFlashBuf數(shù)組大小為2048/4=512。完善Flash.c文件步驟4:在Flash.c文件的“內(nèi)部函數(shù)聲明”區(qū),添加內(nèi)部函數(shù)的聲明代碼,如程序清單13-5所示。ReadWord函數(shù)用于讀取內(nèi)部Flash指定地址的數(shù)據(jù),WriteWordNoCheck函數(shù)用于向內(nèi)部Flash寫入數(shù)據(jù),這兩個(gè)函數(shù)的數(shù)據(jù)均以字為單位。完善Flash.c文件步驟4:在Flash.c文件的“內(nèi)部函數(shù)實(shí)現(xiàn)”區(qū),添加內(nèi)部函數(shù)的實(shí)現(xiàn)代碼,如程序清單13-6所示。Flash.c文件的內(nèi)部靜態(tài)函數(shù)有兩個(gè),下面按照順序?qū)@兩個(gè)函數(shù)中的語(yǔ)句進(jìn)行解釋說明。(1)vu32等效于volatileunsignedint,在addr前加“(vu32*)”,就強(qiáng)制將addr轉(zhuǎn)換為指向以字(4字節(jié))為單位的數(shù)據(jù)地址,因此ReadWord函數(shù)的參數(shù)addr必須是4的倍數(shù)“*(vu32*)addr”表示取出addr地址存放的數(shù)據(jù),該數(shù)據(jù)以字為單位,長(zhǎng)度為4字節(jié)。變量前帶volatile關(guān)鍵字,可以確保對(duì)該地址的穩(wěn)定訪問,比如第一條指令剛剛從addr地址讀取過數(shù)據(jù),如果后面的指令又需要讀取addr地址存放的數(shù)據(jù),編譯器優(yōu)化代碼之后就有可能只在第一條指令位置讀取一次,而添加volatile之后,編譯器就不會(huì)對(duì)addr的代碼進(jìn)行優(yōu)化,每次都會(huì)讀取addr地址存放的數(shù)據(jù)。完善Flash.c文件步驟4:(2)通過FLASHProgramWord函數(shù)向內(nèi)部Flash寫入以字(4字節(jié))為單位的數(shù)據(jù)參數(shù)startAddr是內(nèi)部Flash待寫入?yún)^(qū)域的起始地址,pBuf是存放待寫入數(shù)據(jù)數(shù)組的起始地址numToWrite是待寫入數(shù)據(jù)的數(shù)量。由于大容量STM32芯片1頁(yè)的大小是2K字節(jié),即512個(gè)字,WriteWordNoCheck函數(shù)是以字為單位向內(nèi)部Flash寫入數(shù)據(jù),如果起始地址startAddi是500,待寫入數(shù)據(jù)的數(shù)量大于12,數(shù)據(jù)就會(huì)寫入下一頁(yè),因此,WriteWordNoCheck函數(shù)不帶自檢查功能。完善Flash.c文件步驟4:在Flashc文件的“API函數(shù)實(shí)現(xiàn)”區(qū),添加IitFlash函數(shù)的實(shí)現(xiàn)代碼,如程序清單13-7所示。InitFlash函數(shù)用于初始化Flash模塊,因?yàn)闆]有需要初始化的內(nèi)容,所以函數(shù)體留空即可,如果后續(xù)升級(jí)版有需要初始化的代碼,直接填入即可。但是,用戶在使用該模塊的時(shí)候依然要養(yǎng)成初始化Flash模塊的習(xí)慣,即在IitHardware函數(shù)中調(diào)用InitFlash。完善Flash.c文件步驟4:在Flashc文件的“API函數(shù)實(shí)現(xiàn)”區(qū)在itFlash函數(shù)實(shí)現(xiàn)區(qū)的后面添加STM32FlashWriteWord函數(shù)的實(shí)現(xiàn)代碼,如程序清單13-8所示。STM32FlashWriteWord函數(shù)從指定地址開始寫入指定長(zhǎng)度的數(shù)據(jù),其中,參數(shù)startAddr是起始地址,該地址必須是4的倍數(shù),pBuf是待寫入內(nèi)部Flash的數(shù)據(jù)存放的地址,numToWrite是需要寫入的以字為單位的數(shù)據(jù)個(gè)數(shù)。下面對(duì)STM32FlashWriteWord函數(shù)進(jìn)行解釋說明。(1)由于STM32核心板使用的STM32芯片型號(hào)為STM32F103RCT6其內(nèi)部Flash容量為256KB(0x40000B),因此,起始地址必須在0x08000000~0x0803FFFC范用內(nèi)。完善Flash.c文件步驟4:(2)通過STM32FlashWriteWord函數(shù)寫內(nèi)部Flash,需要調(diào)用FLASH_ProgramWord函數(shù)對(duì)內(nèi)部Flash進(jìn)行編程,調(diào)用FLASH_ErasePage函數(shù)對(duì)內(nèi)部Fash進(jìn)行頁(yè)擦除。編程和擦除操作都要先通過FLASH_Unlock函數(shù)進(jìn)行解鎖操作,編程和擦除操作結(jié)束之后,還需要通過FLASH_Lock函數(shù)進(jìn)行上鎖操作。(3)通過STM32FashReadWord函數(shù)讀出整頁(yè)內(nèi)容,并判斷該頁(yè)的每一位是否都為1,如果有些位為0就需要先通過FLASH_ErasePage函數(shù)擦除該頁(yè),然后再通過WriteWordNoCheck寫數(shù)據(jù)到內(nèi)部Flash。如果該頁(yè)的所有位都為1,就不需要通過FLASHErasePage函數(shù)擦除該頁(yè),直接通過WriteWordNoCheck寫數(shù)據(jù)到內(nèi)部Flash即可。完善Flash.c文件步驟4:(4)如果內(nèi)部Flash某頁(yè)已經(jīng)被擦除,即該頁(yè)全部位都為1,向該頁(yè)的某些存儲(chǔ)空間寫入新數(shù)據(jù),直接調(diào)用WriteWordNoCheck函數(shù)即可。但是,如果該頁(yè)已經(jīng)有數(shù)據(jù),假設(shè)該頁(yè)由A區(qū)域和B區(qū)域組成,需要向A區(qū)域?qū)懭胄聰?shù)據(jù)就需要通過STM32FlashReadWord函數(shù)讀出整頁(yè)數(shù)據(jù)到s_arrFlashBuf數(shù)組(實(shí)際上是STM32的SRAM)然后將新數(shù)據(jù)寫入SRAM的A區(qū)域,B區(qū)域的數(shù)據(jù)保持不變。在將更新之后的SRAM寫入該頁(yè)之前,要先通過FLASHErasePage函數(shù)進(jìn)行頁(yè)擦除操作,執(zhí)行完頁(yè)擦除操作之后,再將更新之后的SRAM通過WriteWordNoCheck函數(shù)寫入該頁(yè)。(5)STM32FlashWriteWord函數(shù)還具有跨頁(yè)寫數(shù)據(jù)功能,通過變量pagePos指定當(dāng)前寫入頁(yè)的編號(hào)。完善Flash.c文件步驟4:完善Flash.c文件步驟4:在Flashc文件的“API函數(shù)實(shí)現(xiàn)”區(qū),在STM32FlashWriteWord函數(shù)實(shí)現(xiàn)區(qū)的后面添加STM32FlashReadWord函數(shù)的實(shí)現(xiàn)代碼,如程序清單13-9所示。STM32FlashReadWord函數(shù)從指定地址開始讀出指定長(zhǎng)度的數(shù)據(jù),其中,參數(shù)startAddr是起始地址,該地址必須是4的倍數(shù),pBuf是讀取到的數(shù)據(jù)存放的地址,numToRead是需要讀取的以字為單位的數(shù)據(jù)個(gè)數(shù)。完善Flash.c文件步驟5:首先在ProcKeyOne.c的“包含頭文件”區(qū)的最后,添加代碼#include"Flashh"。然后在ProcKeyOnec的“宏定義”區(qū)添加宏定義的代碼,如程序清單13-10所示。MAX_WR_LEN為數(shù)據(jù)最大寫入長(zhǎng)度,F(xiàn)LASH_START_ADDR1為讀/寫內(nèi)部Flash的起始地址,BUF_SIZE為數(shù)組長(zhǎng)度,將其定義為8,即8字節(jié)。完善ProcKeyOne.c文件步驟5:接下來在ProcKeyOne.c的“內(nèi)部變量”區(qū)定義兩個(gè)數(shù)組分別為BUF0_U32和BUF1_U32。第一個(gè)數(shù)組用于存放0xFFFFFFFF和OXFFFFFFFF,第二個(gè)數(shù)組用于存放0x76543210和0x89ABCDEF,這兩個(gè)數(shù)組分別通過KEY1和KEY2寫入內(nèi)部Flash,如程序清單13-11所示。完善ProcKeyOne.c文件步驟5:注釋掉ProcKeyOne.c文件中所有的printf語(yǔ)句,然后,在ProcKeyDownKey1、ProcKeyDownKey2和ProcKeyDownKey3函數(shù)中增加相應(yīng)的處理程序,如程序清單13-12所示。下面按照順序?qū)@3個(gè)函數(shù)中的語(yǔ)句進(jìn)行解釋說明。(1)ProcKeyDownKey1函數(shù)用于處理按鍵KEY1按下事件,該函數(shù)調(diào)用STM32FlashWriteWord函數(shù),向起始地址為0x0800C000的存儲(chǔ)空間寫入0XFFFFFFFF和OXFFFFFFFF,共8字節(jié)。(2)ProcKeyDownKey2函數(shù)用于處理按鍵KEY2按下事件,該函數(shù)調(diào)用STM32FlashWriteWord函數(shù),向起始地址為0x0800C000的存儲(chǔ)空
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46949-2025植物檢疫措施在國(guó)際貿(mào)易中的應(yīng)用指南
- 內(nèi)墻瓷磚技術(shù)交底
- 內(nèi)丘舒卿培訓(xùn)課件
- 畫室虎年活動(dòng)策劃方案(3篇)
- 維修車廠管理制度內(nèi)容(3篇)
- 部門活動(dòng)經(jīng)費(fèi)使用管理制度(3篇)
- 銷售合同與管理制度范本(3篇)
- 青海省資產(chǎn)管理制度(3篇)
- 云南省玉溪市2025-2026學(xué)年七年級(jí)上學(xué)期期末信息技術(shù)試題(解析版)
- 養(yǎng)老院健康監(jiān)測(cè)制度
- CJ/T 3066-1997內(nèi)磁水處理器
- 院內(nèi)急重癥快速反應(yīng)小組
- 湖南省省情試題及答案
- T/CIE 115-2021電子元器件失效機(jī)理、模式及影響分析(FMMEA)通用方法和程序
- 紅巖中考試題及答案
- 智能路燈項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 臨時(shí)用電變壓器安裝方案
- 2025年包頭職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)完整版
- 2024-2025學(xué)年浙江省杭州市余杭區(qū)五年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 養(yǎng)老護(hù)理員的睡眠照料
- 疾控中心艾滋病工作匯報(bào)
評(píng)論
0/150
提交評(píng)論