版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第6章EXTI與開發(fā)實例6.1STM32F4中斷系統(tǒng)向量中斷控制器簡稱NVIC(NestedVectoredInterruptController),是Cortex-M4不可分離的一部分。NVIC與Cortex-M4內(nèi)核相輔相成,共同完成對中斷的響應(yīng)。NVIC的寄存器以存儲器映射的方式訪問,除了包含控制寄存器和中斷處理的控制邏輯之外,NVIC還包含了MPU、SysTick定時器及調(diào)試控制相關(guān)的寄存器。ArmCortex-M4內(nèi)核共支持256個中斷,其中16個內(nèi)部中斷,240個外部中斷和可編程的256級中斷優(yōu)先級的設(shè)置。STM32目前支持的中斷共84個(16個內(nèi)部+68個外部),還有16級可編程的中斷優(yōu)先級。6.1.1STM32F4嵌套向量中斷控制器NVIC每個外部中斷與NVIC中的下列寄存器中有關(guān):(1)使能與除能寄存器(除能也就是平常所說的屏蔽)。(2)掛起與解掛寄存器。(3)優(yōu)先級寄存器。(4)活動狀態(tài)寄存器。另外,下列寄存器也對中斷處理有重大影響:(1)異常屏蔽寄存器(PRIMASK、FAULTMASK及BASEPRI)。(2)向量表偏移量寄存器。(3)軟件觸發(fā)中斷寄存器。(4)優(yōu)先級分組字段。中斷優(yōu)先級數(shù)值越小優(yōu)先級越高。STM32Cortex-M4中斷有搶占優(yōu)先級和響應(yīng)(亞或副)優(yōu)先級,均需設(shè)置。1. 何為搶占式優(yōu)先級(preemptionpriority)高搶占式優(yōu)先級的中斷事件會打斷當前的主程序/中斷程序運行,俗稱中斷嵌套。2. 何為響應(yīng)優(yōu)先級(subpriority)在搶占式優(yōu)先級相同的情況下,高響應(yīng)優(yōu)先級的中斷優(yōu)先被響應(yīng)。在搶占式優(yōu)先級相同的情況下,如果有低響應(yīng)優(yōu)先級中斷正在執(zhí)行,高響應(yīng)優(yōu)先級的中斷要等待已被響應(yīng)的低響應(yīng)優(yōu)先級中斷執(zhí)行結(jié)束后才能得到響應(yīng)(不能嵌套)。6.1.2STM32F4中斷優(yōu)先級3. 判斷中斷是否會被響應(yīng)的依據(jù)首先是搶占式優(yōu)先級,其次是響應(yīng)優(yōu)先級。搶占式優(yōu)先級決定是否會有中斷嵌套。4.優(yōu)先級沖突的處理高搶占優(yōu)先級中斷可在低搶占中斷處理中響應(yīng),實現(xiàn)中斷嵌套。搶占優(yōu)先級相同時無嵌套,先處理先到或響應(yīng)優(yōu)先級高者,相同按表順序。5. STM32中對中斷優(yōu)先級的定義STM32的中斷有兩個優(yōu)先級的概念:搶占式優(yōu)先級和響應(yīng)優(yōu)先級,也把響應(yīng)優(yōu)先級稱作“亞優(yōu)先級”或“副優(yōu)先級”,每個中斷源都需要被指定為這兩種優(yōu)先級。(1)搶占式優(yōu)先級高搶占優(yōu)先級中斷能搶斷低優(yōu)先級中斷,實現(xiàn)中斷嵌套,優(yōu)先響應(yīng)。(2)副優(yōu)先級搶占級相同時,高副優(yōu)先級先響應(yīng),低副優(yōu)先級中斷執(zhí)行完后才響應(yīng),非搶斷。(3)優(yōu)先級沖突處理搶占優(yōu)先相同無嵌套,先處理先來或副優(yōu)先級高的,中斷表順序決定最終處理順序。因此,判斷中斷是否會被響應(yīng)的依據(jù)是,首先是看搶占式優(yōu)先級,其次是副優(yōu)先級。搶占式優(yōu)先級決定是否會有中斷嵌套;(4)STM32對中斷優(yōu)先級的定義STM32中指定中斷優(yōu)先級的寄存器位有4位,這4個寄存器位的分組方式如下:第0組,所有4位用于指定響應(yīng)優(yōu)先級。第1組,最高1位用于指定搶占式優(yōu)先級,最低3位用于指定響應(yīng)式優(yōu)先級。第2組,最高2位用于指定搶占式優(yōu)先級,最低2位用于指定響應(yīng)式優(yōu)先級。第3組,最高3位用于指定搶占式優(yōu)先級,最低1位用于指定響應(yīng)式優(yōu)先級。第4組,所有4位用于指定搶占式優(yōu)先級。優(yōu)先級分組方式所對應(yīng)的搶占式優(yōu)先級和響應(yīng)式優(yōu)先級寄存器位數(shù)和所表示的優(yōu)先級數(shù)如圖6-2所示。圖6-2STM32F4優(yōu)先級位數(shù)和級數(shù)分配圖中斷向量表是中斷系統(tǒng)中非常重要的概念。它是一塊存儲區(qū)域,通常位于存儲器的地址處,在這塊區(qū)域上按中斷號從小到大依次存放著所有中斷處理程序的入口地址。當某個中斷發(fā)生且未被屏蔽時,CPU會根據(jù)中斷號查找中斷向量表中的對應(yīng)項,獲取該中斷服務(wù)程序入口地址,隨后跳轉(zhuǎn)執(zhí)行該程序。這是STM32F4系列中斷處理的基本流程。STM32F4系列微控制器不同產(chǎn)品支持可屏蔽中斷的數(shù)量略有不同。6.1.3STM32F4中斷向量表STM32F407中斷服務(wù)函數(shù)在啟動文件startup_stm32f40x_xx.s預(yù)定義,命名為PPP_IRQHandler。用戶在stm32f40x_it.c中用C語言重定義,編譯鏈接時替代默認中斷服務(wù)程序。STM32F407的中斷服務(wù)函數(shù)具有以下特點:(1)預(yù)置弱定義屬性。啟動代碼中除復(fù)位程序外,中斷服務(wù)函數(shù)預(yù)置弱定義,用戶可同名替代。(2)全C實現(xiàn)。中斷服務(wù)程序全用C語言編寫,現(xiàn)場保護恢復(fù)由硬件自動完成,無需匯編“封皮”。6.1.4STM32F4中斷服務(wù)函數(shù)6.2STM32F4外部中斷/事件控制器EXTISTM32F407的EXTI有23個邊沿檢測器,每線獨立配置輸入類型和觸發(fā)邊沿(上、下或雙邊),且可獨立屏蔽,中斷請求由掛起寄存器保持。EXTI控制器的主要特性如下:(1)每個中斷/事件都有獨立的觸發(fā)和屏蔽。(2)每個中斷線都有專用的狀態(tài)位。(3)支持多達23個軟件的中斷/事件請求。(4)檢測脈沖寬度低于APB2時鐘寬度的外部信號。外部中斷/事件控制器由中斷屏蔽寄存器、請求掛起寄存器、軟件中斷/事件寄存器、上升沿觸發(fā)選擇寄存器、下降沿觸發(fā)選擇寄存器、事件屏蔽寄存器、邊沿檢測電路和脈沖發(fā)生器等部分構(gòu)成。外部中斷/事件控制器框圖如圖6-3所示。6.2.1STM32F4的EXTI內(nèi)部結(jié)構(gòu)圖6-3STM32F407外部中斷/事件控制器內(nèi)部結(jié)構(gòu)圖EXTI有兩種功能:產(chǎn)生中斷請求和觸發(fā)事件。1. 外部中斷與事件輸入從圖6-3看,STM32F407EXTI共有23內(nèi)部信號線和23外部中斷/事件輸入線,編號EXTI0~EXTI22。EXTI0~EXTI15共16個輸入線由GPIO引腳選定,每個EXTI線只能被一個GPIO引腳綁定。EXTI0~EXTI4獨立ISR,EXTI5~EXTI9共用ISR,EXTI10~EXTI15共用ISR,需ISR內(nèi)判斷具體中斷線。另外7個EXTI線連接的不是某個實際的GPIO引腳,而是其他外設(shè)產(chǎn)生的事件信號。這7個EXTI線的中斷有單獨的ISR。(1)EXTI線16連接PVD輸出。(2)EXTI線17連接RTC鬧鐘事件。(3)EXTI線18連接USBOTGFS喚醒事件。(4)EXTI線19連接以太網(wǎng)喚醒事件。(5)EXTI線20連接USBOTGHS喚醒事件。(6)EXTI線21連接RTC入侵和時間戳事件。(7)EXTI線22連接RTC喚醒事件。另外,如果將STM32F407的I/O引腳映射為EXTI的外部中斷/事件輸入線,必須將該引腳設(shè)置為輸入模式。圖6-4STM32F407外部中斷/事件輸入線映像2. APB外設(shè)接口圖6-3上部的APB外設(shè)模塊接口是STM32F407微控制器每個功能模塊都有的部分,CPU通過這樣的接口訪問各個功能模塊。3. 邊沿檢測器EXTI中的邊沿檢測器共有23個,用來連接23個外部中斷/事件輸入線,是EXTI的主體部分。每個邊沿檢測器由邊沿檢測電路、控制寄存器、門電路和脈沖發(fā)生器等部分組成。STM32F407微控制器的外部中斷/事件控制器EXTI,具有以下主要特性:(1)每個外部中斷/事件輸入線都可以獨立地配置它的觸發(fā)事件(上升沿、下降沿或雙邊沿),并能夠單獨地被屏蔽。(2)每個外部中斷都有專用的標志位(請求掛起寄存器),保持著它的中斷請求。(3)可以將多達140個通用I/O引腳映射到16個外部中斷/事件輸入線上。(4)可以檢測脈沖寬度低于APB2時鐘寬度的外部信號。6.2.2STM32F4的EXTI主要特性6.3STM32F4中斷HAL驅(qū)動程序STM32中斷系統(tǒng)是通過一個嵌套向量中斷控制器(NVIC)進行中斷控制的,使用中斷要先對NVIC進行配置。STM32的HAL庫中提供了NVIC相關(guān)操作函數(shù)。STM32F4中斷管理相關(guān)驅(qū)動程序的頭文件是stm32f4xx_hal_cortex.h,其常用函數(shù)如表6-2所示。6.3.1中斷設(shè)置相關(guān)HAL驅(qū)動函數(shù)表6-2中斷管理常用函數(shù)表6-2中前面的3個函數(shù)用于STM32CubeMX自動生成的代碼,其他函數(shù)用于用戶代碼。幾個常用的函數(shù)詳細介紹如下。1. 函數(shù)HAL_NVIC_SetPriorityGrouping()函數(shù)HAL_NVIC_SetPriorityGrouping()用于設(shè)置優(yōu)先級分組策略,其函數(shù)原型定義如下:
voidHAL_NVIC_SetPriorityGrouping(uint32_tPriorityGroup);其中,參數(shù)PriorityGroup是優(yōu)先級分組策略,可使用文件stm32f1xx_hal_cortex.h中定義的幾個宏定義常量,如下所示,它們表示不同的分組策略。#defineNVIC_PRIORITYGROUP_00x00000007U//0位用于搶占優(yōu)先級,4位用于次優(yōu)先級#defineNVIC_PRIORITYGROUP_10x00000006U//1位用于搶占優(yōu)先級,3位用于次優(yōu)先級#defineNVIC_PRIORITYGROUP_20x00000005U//2位用于搶占優(yōu)先級,2位用于次優(yōu)先級#defineNVIC_PRIORITYGROUP_30x00000004U//3位用于搶占優(yōu)先級,1位用于次優(yōu)先級#defineNVIC_PRIORITYGROUP_40x00000003U//4位用于搶占優(yōu)先級,0位用于次優(yōu)先級2. 函數(shù)HAL_NVIC_SetPriority()函數(shù)HAL_NVIC_SetPriority()用于設(shè)置某個中斷的搶占優(yōu)先級和次優(yōu)先級,其函數(shù)原型定義如下:voidHAL_NVIC_SetPrlorlty(IRQn_TypeIRQn,uint32_tPreemptprlority,uint32_tsubpriority);其中,參數(shù)IRQn是中斷的中斷號,為枚舉類型IRQn_Type。枚舉類型IROn_Type的定義在文件stm32F407xe.h中。在中斷操作的相關(guān)函數(shù)中,都用IRQn_Type類型的中斷號表示中斷,這個枚舉類型的部分定義如下:typedefenum{/******Cortex-M4處理器異常編號*******************************/NonMaskableInt_IRQn=-14,//NonMaskableInterruptMemoryManagement_IRQn=-12,//Cortex-M4MemoryManagementInterruptBusFault_IRQn=-11,//Cortex-M4BusFaultInterruptUsageFault_IRQn=-10,//Cortex-M4UsageFaultInterruptSVCa11_IRQn=-5,//Cortex-M4SVCallInterruptDebugMonitor_IRQn=-4,//Cortex-M4DebugMonitorInterruptPendSV_IRQn=-2,//Cortex-M4PendSVInterruptSysTick_IRQn=-1,//Cortex-M4SystemTickInterrupt/******TM32特定中斷編號******************************/WWDG_IRQn=0,//WindowWatchDogInterruptPVD_IRQn=1,//PVDthroughEXTILinedetectionInterruptEXTI0_IRQn=6,//EXTILineoInterruptEXTI1_IRQn=7,//EXTILinelInterruptEXTI2_IRQn=8,//EXTILine2InterruptRNG_IRQn=80,//RNGglobalInterruptFPU_IRQn=81.//FPUglobalinterrupt}IRQn_Type:由這個枚舉類型的定義代碼可以看到,其中斷號枚舉值就是在中斷名稱后面加了“_IRQn”。例如,中斷號為0的窗口看門狗中斷WWDG,其中斷號枚舉值就是WWDG_IRQ0函數(shù)中的另外兩個參數(shù),PreemptPriority是搶占優(yōu)先級數(shù)值,SubPriority是次優(yōu)先級數(shù)值。3. 函數(shù)HAL_NVIC_EnableIRQ()函數(shù)HAL_NVIC_EnableIRQ()的功能是在NVIC控制器中開啟某個中斷,只有在NVIC中開啟某個中斷后,NVIC才會對這個中斷請求做出響應(yīng),執(zhí)行相應(yīng)的ISR。其原型定義如下:voidHAL_NVIC_EnableIRQ(IRQn_TypeIRQn):其中,枚舉類型IRQn_Type的參數(shù)IRQn是中斷號的枚舉值。外部中斷相關(guān)函數(shù)的定義在文件stm32f4xx_hal_gpio.h中,函數(shù)列表如表6-3所示。6.3.2外部中斷相關(guān)HAL函數(shù)表6-3外部中斷相關(guān)函數(shù)1. 讀取和清除中斷標志在HAL庫中,以“_HAL”為前綴的都是宏函數(shù)。例如,函數(shù)_HAL_GPIO_EXTI_GET_IT()的定義如下:#define_HAL_GPIO_EXTI_GET_IT(_EXTI_LINE_)(EXTI->PR&(_EXTI_LINE_))它的功能就是檢查外部中斷掛起寄存器(EXTI_PR)中某個中斷線的掛起標志位是否置位。參數(shù)2. 在某個外部中斷線上產(chǎn)生軟中斷函數(shù)_HAL_GPIO_EXTI_GENERATE_SWIT()的功能是在某個中斷線上產(chǎn)生軟中斷,其定義如下:#define_HAL_GPIO_EXTI_GENERATE_SWIT(_EXTI_LINE_)(EXTI->SWIER|=(_EXTI_LINE_))它實際上就是將外部中斷的軟件中斷事件寄存器(EXTI_SWIER)中對應(yīng)于中斷線_EXTI_LINE_的位置1,通過軟件的方式產(chǎn)生某個外部中斷。3. 外部中斷ISR以及中斷處理回調(diào)函數(shù)對于0~15線的外部中斷,EXTI0~EXTI4有獨立的ISR,EXTI[9:5]共用一個ISR,EXTI[15:10]共用一個ISR。在啟用某個中斷后,在STM32CubeMX自動生成的中斷處理程序文件stm32f4xx_it.c中會生成ISR的代碼框架。這些外部中斷ISR的代碼都是一樣的。6.4STM32F4外部中斷設(shè)計流程STM32F4中斷設(shè)計包括三部分,即NVIC設(shè)置、中斷端口配置、中斷處理。使用庫函數(shù)配置外部中斷的步驟。(1)使能GPIO口時鐘,初始化GPIO口為輸入。首先,要使用GPIO口作為中斷輸入,所以要使能相應(yīng)的GPIO口時鐘。(2)設(shè)置GPIO口模式,觸發(fā)條件,開啟SYSCFG時鐘,設(shè)置GPIO口與中斷線的映射關(guān)系。該步驟如果使用標準庫,那么需要多個函數(shù)分步實現(xiàn)。而當使用HAL庫的時候,則都是在函數(shù)HAL_GPIO_Init中一次性完成的。例如要設(shè)置PA0連接中斷線0,并且為上升沿觸發(fā),代碼為:GPIO_InitTypeDefGPIO_Initure;GPIO_Initure.Pin=GPIO_PIN_0;//PA0GPIO_Initure.Mode=GPIO_MODE_IT_RISING;//外部中斷,上升沿觸發(fā)GPIO_Initure.Pull=GPIO_PULLDOWN;//默認下拉
HAL_GPIO_Init(GPIOA,&GPIO_Initure);(3)配置中斷優(yōu)先級(NVIC),并使能中斷。設(shè)置好中斷線和GPIO映射關(guān)系,然后又設(shè)置好了中斷的觸發(fā)模式等初始化參數(shù)。設(shè)置中斷線0的中斷優(yōu)先級并使能外部中斷0的方法為:HAL_NVIC_SetPriority(EXTI0_IRQn,2,0); //搶占優(yōu)先級為2,子優(yōu)先級為0HAL_NVIC_EnableIRQ(EXTI0_IRQn); //使能中斷線0(4)編寫中斷服務(wù)函數(shù)。配置完中斷優(yōu)先級之后,接著要做的就是編寫中斷服務(wù)函數(shù)。中斷服務(wù)函數(shù)的名字是在HAL庫中事先有定義的。這里需要說明一下,STM32F14的IO口外部中斷函數(shù)只有7個,分別為:voidEXTI0_IRQHandler();voidEXTI1_IRQHandler();voidEXTI2_IRQHandler();voidEXTI3_IRQHandler();voidEXTI4_IRQHandler();voidEXTI9_5_IRQHandler();voidEXTI15_10_IRQHandler();(5)編寫中斷處理回調(diào)函數(shù)HAL_GPIO_EXTI_Callback。在使用HAL庫的時候,也可以跟使用標準庫一樣,在中斷服務(wù)函數(shù)中編寫控制邏輯。6.5采用STM32CubeMX和HAL庫的外部中斷設(shè)計實例中斷在嵌入式應(yīng)用中占有非常重要的地位,幾乎每個控制器都有中斷功能。中斷對保證緊急事件在第一時間處理是非常重要的。設(shè)計使用外接的按鍵作為觸發(fā)源,使得控制器產(chǎn)生中斷,并在中斷服務(wù)函數(shù)中實現(xiàn)控制RGB彩燈的任務(wù)。外部中斷設(shè)計實例的硬件設(shè)計同按鍵的硬件設(shè)計,如圖5-48所示。在本實例中,我們根據(jù)圖5-48一個示例,通過按鍵控制LED,如下:(1)按下KEY1,LED變亮;再按下KEY1,LED變暗;(2)按下并彈開KEY2,LED變亮;再按下并彈開KEY2,LED變暗;6.5.1STM32F4外部中斷的硬件設(shè)計下面講述STM32F4外部中斷的軟件設(shè)計。1.通過STM32CubeMX新建工程通過STM32CubeMX新建工程的步驟如下:(1)新建文件夾
Demo目錄下新建文件夾EXTI,這是保存本章新建工程的文件夾。(2)新建STM32CubeMX工程在STM32CubeMX開發(fā)環(huán)境中新建工程。(3)選擇MCU或開發(fā)板CommercialPartNumber和MCUs/MPUsList選擇STM32F407ZGT6,選擇StartProject啟動工程。6.5.2STM32F4外部中斷的軟件設(shè)計(4)保存STM32CubeMX工程使用STM32CubeMX菜單File→SaveProject,保存工程。(5)生成報告使用STM32CubeMX菜單File→GenerateReport生成當前工程的報告文件。(6)配置MCU時鐘樹STM32CubeMXPinout&Configuration子頁面下,選擇SystemCore→RCC,HighSpeedClock(HSE)根據(jù)開發(fā)板實際情況,選擇Crystal/CeramicResonator(晶體/陶瓷晶振)。(7)配置MCU外設(shè)配置GPIO端口為EXTI模式如圖6-5所示圖6-5配置GPIO端口為EXTI模式配置完成后的GPIO端口頁面如圖6-6所示。圖6-6配置完成后的GPIO端口頁面切換到STM32CubeMXPinout&Configuration子頁面下選擇SystemCore→NVIC,修改PriorityGroup為2bitsforpre-emptionpriority(2位搶占優(yōu)先級),Enabled欄勾選EXTIline0interrupt和EXTIline[15:10]interrupts。修改PreemptionPriority(搶占優(yōu)先級)和SubPriority(子優(yōu)先級)如圖6-7所示。圖6-7NVIC配置頁面CodeGeneration頁面Selectforinitsequenceordering欄勾選EXTIline0interrupt和EXTIline[15:10]interrupts。NVICCodeGeneration配置頁面如圖6-8所示。圖6-8NVICCodeGeneration配置頁面(8)配置工程STM32CubeMXProjectManager子頁面Project欄下Toolchain/IDE選擇MDK-Arm,MinVersion選擇V5,可生成KeilMDK工程;選擇STM32CubeIDE,可生成STM32CubeIDE工程。(9)生成C代碼工程STM32CubeMX主頁面,單擊GENERATECODE按鈕生成C代碼工程。2.通過KeilMDK實現(xiàn)工程通過KeilMDK實現(xiàn)工程的步驟如下:(1)打開工程打開
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)信息化項目進度監(jiān)控手冊(標準版)
- 2025年醫(yī)藥產(chǎn)品注冊與質(zhì)量管理體系手冊
- 物流園安全教育培訓(xùn)制度
- 殘疾人無障礙設(shè)施使用指南
- 店面消防培訓(xùn)制度
- 音樂培訓(xùn)機構(gòu)規(guī)章制度
- 中醫(yī)調(diào)理培訓(xùn)制度
- 2025年農(nóng)產(chǎn)品加工企業(yè)質(zhì)量管理指南
- 園區(qū)培訓(xùn)統(tǒng)計制度匯編
- 檢驗培訓(xùn)考核制度
- 【一例擴張型心肌病合并心力衰竭患者的個案護理】5400字【論文】
- 四川橋梁工程系梁專項施工方案
- 貴州省納雍縣水東鄉(xiāng)水東鉬鎳礦采礦權(quán)評估報告
- GC/T 1201-2022國家物資儲備通用術(shù)語
- GB.T19418-2003鋼的弧焊接頭 缺陷質(zhì)量分級指南
- 污水管網(wǎng)監(jiān)理規(guī)劃
- GB/T 35273-2020信息安全技術(shù)個人信息安全規(guī)范
- 2023年杭州臨平環(huán)境科技有限公司招聘筆試題庫及答案解析
- 《看圖猜成語》課件
- LF爐機械設(shè)備安裝施工方案
- 企業(yè)三級安全生產(chǎn)標準化評定表(新版)
評論
0/150
提交評論