版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《STM32Cube嵌入式系統(tǒng)應(yīng)用》HAL庫習(xí)題答案
第1章
1.嵌入式系統(tǒng)處理器有哪幾種?如何選擇?
【答案】
嵌入式處理器是嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運行的硬件單元。分為以下幾
種:
(1)嵌入式微處理器
一般用于中高端嵌入式系統(tǒng)應(yīng)用場景,可跑中大型操作系統(tǒng)。
(2)嵌入式微控制器
一般用于低端嵌入式系統(tǒng)應(yīng)用場景,可跑小型操作系統(tǒng)或裸機運行程序。
(3)嵌入式DSP
?般用于數(shù)據(jù)運算集中的應(yīng)用場景。
(4)嵌入式SoC
在此主要指基于FPGA的SOPC系統(tǒng),處理器和FPGA系統(tǒng)混合集成。一般應(yīng)用于通
信、數(shù)據(jù)中心等對數(shù)據(jù)處理實時性有要求的場景。
嵌入式系統(tǒng)處理器的選擇主要根據(jù)應(yīng)用場景決定,
2.簡述馮?諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)的區(qū)別。
【答案】
1)馮?諾依曼結(jié)構(gòu)
1964年,馮?諾依曼簡化了計算機的結(jié)構(gòu),提出了“存儲程序''的思想,大大提高了計算機的
速度?!按鎯Τ绦颉彼枷肟梢院喕爬?點:
(1)計算機包括運算器、控制器、存儲器、輸入/輸出設(shè)備。
(2)計算機內(nèi)部應(yīng)采JU二進(jìn)制來表示指令和數(shù)據(jù)。
(3)將編寫好的程序和數(shù)據(jù)保存到存儲器,計算機自動地逐條取出指令和數(shù)據(jù)進(jìn)行分析、
處理和執(zhí)行。
在馮?諾依曼結(jié)構(gòu)中,計算機系統(tǒng)由一個中央處理單元(CPU)和一個存儲器組成,數(shù)據(jù)和
指令都存儲在存儲器中,程序指令和數(shù)據(jù)不加區(qū)分,均采用數(shù)據(jù)總線進(jìn)行傳輸,因此,數(shù)據(jù)訪
間和指令存取不能同時在總線上傳輸。CPU可以根據(jù)所給的地址對存儲器進(jìn)行讀或?qū)?。程序?/p>
令和數(shù)據(jù)的寬度相同。
2)哈佛體系結(jié)構(gòu)
在哈佛體系結(jié)構(gòu)中,數(shù)據(jù)和程序使用各自獨立的存儲器。程序計數(shù)器PC只指向程序存儲
器而不指向數(shù)據(jù)存儲器,這樣做的后果是很難在哈佛體系結(jié)構(gòu)的計算機上編寫出一個自修改的
程序(有時稱為在應(yīng)用編程,InApplicationProgramming,IAP)。哈佛體系結(jié)構(gòu)具有以卜,優(yōu)
點:
1)獨立的程序存儲器和數(shù)據(jù)存儲器為數(shù)字信號處理提供了較高的性能。
2)指令和數(shù)據(jù)可以有不同的數(shù)據(jù)寬度,具有較高的效率。
3.嵌入式系統(tǒng)與計算機系統(tǒng)有什么區(qū)別?
【答案】
通用計算機系統(tǒng)的技術(shù)要求是高速、海量的數(shù)值計算,其技術(shù)發(fā)展方向是總線速度的無限
提升、存儲容量的無限擴大;而嵌入式計算機系統(tǒng)的技術(shù)要求則是智能化控制,技術(shù)發(fā)展方向
是與對象系統(tǒng)密切相關(guān)的潛入性能、控制能力與控制的可靠性不斷提高。
4.什么是嵌入式系統(tǒng)?
【答案】
嵌入式系統(tǒng)是以應(yīng)用為核心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、
可靠性、安全性、成本、體積、重量、功耗、環(huán)境等方面有嚴(yán)格要求的專用計算機系統(tǒng)。
5.嵌入式系統(tǒng)與通用計算機系統(tǒng)的異同點?
【答案】
嵌入式系統(tǒng)和通用計算機系統(tǒng)的共同點
嵌入式系統(tǒng)和通用計算機系統(tǒng)都屬于計算機系統(tǒng),從系統(tǒng)組成上講,它們都是由硬件和軟
件構(gòu)成的;工作原理是相同的,都是存儲程序機制。從硬件上看,嵌入式系統(tǒng)和通用計算機系
統(tǒng)都是由CPU.存儲器、I/O接口和中斷系統(tǒng)等部件組成;從軟件上看,嵌入式系統(tǒng)軟件和通
用計算機軟件都可以劃分為系統(tǒng)軟件和應(yīng)用軟件兩類。
作為計算機系統(tǒng)的一個新興的分支,嵌入式系統(tǒng)與人們熟悉和常用的通用計算機系統(tǒng)相比
又具有以下不同點。
1)形態(tài)。通用計算機系統(tǒng)具有基本相同的外形(如主機、顯示器、鼠標(biāo)和鍵盤等)并且獨
立存在;而嵌入式系統(tǒng)通常隱藏在具體某個產(chǎn)品或設(shè)備(稱為宿主對象,如空調(diào)、洗衣機、數(shù)
字機頂盒等)中,它的形態(tài)隨著產(chǎn)品或設(shè)備的不同而不同.
2)功能。通用計算機系統(tǒng)一般具有通用而復(fù)雜的功能,任意一臺通用計算機都具有文檔編
輯、影音播放、娛樂游戲、網(wǎng)上購物和通信聊天等通用功能;而嵌入式系統(tǒng)嵌入在某個宿主對
象中。功能由宿主對象決定,具有專用性,通常是為某個應(yīng)用量身定做的。
3)功耗。目前,通用計算機系統(tǒng)的功耗一般為200W左右;而嵌入式系統(tǒng)的宿主對象通常
是小型應(yīng)用系統(tǒng),如手機、MP3和智能手環(huán)等,這些設(shè)備不可能配置容量較大的電源,因此,
低功耗一直是嵌入式系統(tǒng)追求的目標(biāo),如口常生活中使用的智能手機,其待機功率100?
200mW,即使在通話時功率也只有4?5W。
4)資源。通用計算機系統(tǒng)通常擁有大而全的資源(如鼠標(biāo)、鍵盤、硬盤、內(nèi)存條和顯示器
等);而嵌入式系統(tǒng)受限于嵌入的宿主對象(如手機、MP3和智能手環(huán)等),通常要求小型化
和低功耗,其軟硬件資源受到嚴(yán)格的限制。
5)價值。通用計算機系統(tǒng)的價值體現(xiàn)在“計算”和“存儲”上,計算能力(處理器的字長和主
頻等)和存儲能力(內(nèi)存和硬盤的大小和讀取速度等)是通用計算機的通用評價指標(biāo);而嵌入
式系統(tǒng)往往嵌入到某個設(shè)各和產(chǎn)品中,其價值一般不取決于其內(nèi)嵌的處理器的性能,而體現(xiàn)在
它所嵌入和控制的設(shè)備。如一臺智能洗衣機往往用洗凈比、洗滌容量和脫水轉(zhuǎn)速等來衡量,而
不以其內(nèi)嵌的微控制器的運算速度和存儲容量等來衡量。
6.嵌入式系統(tǒng)的特點主要有哪些?
【答案】
通過嵌入式系統(tǒng)的定義和嵌入式系統(tǒng)與通用計算機系統(tǒng)的比較,可以看出嵌入式系統(tǒng)具有
以下特點。
1)專用性強
2)可裁剪性
受限于體積、功耗和成本等因素,嵌入式系統(tǒng)的硬件和軟件必須高效率地設(shè)計,根據(jù)實際
應(yīng)用需求量體裁衣,去除冗余,從而使系統(tǒng)在滿足應(yīng)用要求的前提下達(dá)到最精簡的配置。
3)實時性好
所謂實時性是指系統(tǒng)能夠及時(在限定時間內(nèi))處理外部事件。大多數(shù)實時系統(tǒng)都是嵌入
式系統(tǒng),而嵌入式系統(tǒng)多數(shù)也有實時性的要求,例如,用戶將銀行卡插入ATM機插卡口,ATM
機控制系統(tǒng)必須立即啟動讀卡程序。
4)可靠性高
很多嵌入式系統(tǒng)必須一年365天、每天24小時持續(xù)工作,甚至在極端環(huán)境下正常運行。大
多數(shù)嵌入式系統(tǒng)都具有可靠性機制,例如,硬件的看門狗定時器、軟件的內(nèi)存保護(hù)和重啟機制
等,以保證嵌入式系統(tǒng)在出現(xiàn)問題時能夠重新啟動,保障系統(tǒng)的健壯性。
5)生命周期長
遵從于摩爾定律,通用計算機的更新?lián)Q代速度較快。嵌入式系統(tǒng)的生命周期與其嵌入的產(chǎn)
品或設(shè)備同步,經(jīng)歷產(chǎn)品導(dǎo)入期、成長期、成熟期和衰退期等各個階段,一般比通用計算機要
長。
6)不易被壟斷
嵌入式系統(tǒng)是將先進(jìn)的計算機技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)和各個行業(yè)的具體應(yīng)用相結(jié)合
后的產(chǎn)物,這一點就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集
成系統(tǒng)。因此,嵌入式系統(tǒng)不易在市場上形成壟斷。目前,嵌入式系統(tǒng)處于百花齊放、各有所
長、全面發(fā)展的時代,各類嵌入式系統(tǒng)軟硬件差別顯著,其通用性和可移植性都較通用計算機
系統(tǒng)要差。在學(xué)習(xí)嵌入式系統(tǒng)時要有所側(cè)重,然后觸類旁通。
7.常見的嵌入式操作系統(tǒng)有哪幾種?
【答案】
1)I1C/0S-II
2)嵌入式Linux
3)Android
4)WindowsCE
8.ARM處理器有什么特點?
【答案】
因為ARM處理器采用RISC結(jié)構(gòu),所以它具有RISC架構(gòu)的一些經(jīng)典特點。
(1)體積小、功耗低、成本低、性能高。
(2)支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件。
(3)大量使用寄存器,指令執(zhí)行速度更快。
(4)大多數(shù)數(shù)據(jù)操作都在寄存器中完成。
(5)尋址方式靈活簡單,執(zhí)行效率高。
(6)內(nèi)含嵌入式在線仿真器。
9.簡述ARM處理器的應(yīng)用領(lǐng)域。
【答案】
ARM處理器可廣泛應(yīng)用于以下領(lǐng)域。
(1)為通信、消費電子、成像設(shè)備等產(chǎn)品,提供可貴行復(fù)雜操作系統(tǒng)的開放應(yīng)用平臺。
(2)在海量存儲、汽車電子、工業(yè)控制和網(wǎng)絡(luò)應(yīng)用等領(lǐng)域,提供實時嵌入式應(yīng)用。
(3)在軍事、航天等領(lǐng)域,提供寬溫、抗電磁干擾、耐腐蝕的狂雜嵌入式應(yīng)用。
10.什么嵌入式微處理器分類。
【答案】
嵌入式微處理器、嵌入式微控制器、嵌入式DSP、嵌入式SoC
11.Cortex-M系列處理器有哪些特征?
【答案】
Coilex-M系列處理器的特征如下:
(1)RISC處理器內(nèi)核:高性能32位CPU、具有確定性的運算、低延遲3階段管道,可
達(dá)1.25DMIPS/MHzo
(2)Thumb-2指令集:16/32位指令的最佳混合、小于8位設(shè)備3倍的代碼大小、市性能
沒有負(fù)面影響,提供最佳的代碼密度。
(3)低功耗模式:集成的睡眠狀態(tài)支持、多電源域、基于架構(gòu)的軟件控制。
對于100腳或144腳的產(chǎn)品,OSC—IN應(yīng)接地,OSC-OUT應(yīng)懸空。對于少于100腳的產(chǎn)
品,有2種接法:OSCJN和OSC_OUT分別通過10KH電阻接地。此方法可提高EMC性能。
分別重映射OSC_IN和OSC_OUT至PD0和PDI,再配置PD0和PD1為推挽輸出并輸出‘0’。
此方法可以減小功耗并節(jié)省2個外部電阻。
7.簡要說明在使用HSE時鐘時程序設(shè)置時鐘參數(shù)的流程。
【答案】
用HSE時鐘,程序設(shè)置時鐘參數(shù)流程:
I)定義RCC內(nèi)部/外部振蕩器(HSE、HSI、LSE和LSI)配置結(jié)構(gòu)體
RCC_OscInitTypeDef結(jié)構(gòu)休;
2)定義RCC系統(tǒng)、AHB和APB總線時鐘配置結(jié)構(gòu)體RCC.ClklnitTypeDef;
3)選擇振蕩器類型為HSE,RCC_OscInitStruct.OscillatorType=
RCC_OSCILLATORTYPE_HSE;
4)配置HSE時鐘為開啟狀態(tài),RCC_OscInitStruct.HSEState=RCC_HSE_ON;
5)配置HSE分頻因子,RCC_OscInitStruct.HSEPredivValue=
RCC_HSE_PREDiV_DIV1;
6)配置HIS時鐘為開啟狀態(tài),RCC_OscInitStruct.HSIState=RCC_HSI_ON;
7)配置PLL為開啟狀態(tài),RCC.OscInitStruct.PLLPLLState=RCC_PLL_ON;
8)配置PLL源為HSE,RCC_OscInitStruct.PLL.PLLSourcc=RCC.PLLSOURCEJISE;
9)配置PLL倍頻系數(shù)為9,RCC_OscInitStruct.PLL.PLLMUL=RCC_PLL_MUL9;
10)初始化RCC振蕩器,HAL_RCC_OscConfig(&RCC_OscInitStruct);
11)選擇要配置的總線時鐘,RCC_C1kInitStruct.ClockTypc=
RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCL
K1|RCC_CLOCKTYPE_PCLK2;
12)選擇SYSCLK時鐘源為PLLCLK,RCC_ClkInitStruct.SYSCLKSource=
RCC_SYSCLKSOURCE_PLLCLK;
13)配置.AHB時鐘分頻系數(shù)為I,RCC_ClkInitStruct.AHBCLKDivider=
RCC_SYSCLK_DIVI;
14)配置APB1時鐘分頻系數(shù)為2,RCC.ClklnitStruct.APB1CLKDivider=
RCC_HCLK_DIV2;
15)配置APB2時鐘分頻系數(shù)為1,RCC_ClkInitStruct.APB2CLKDivider=
RCC_HCLK_DIV1;
16)初始化總線時鐘,HAL_RCC_ClockConfig(&RCC_ClkInitStruct,
FLASH_LATENCY_2)。
第3章
1.STM32CubeMX軟件是什么?
【答案】
STM32CubeMX軟件是ST有限公司為STM32系列微控制器快速建立工程,并快速初
始化使用到的外設(shè)、GPIO等而設(shè)計的,大大縮短了開發(fā)時間。
2.STM32CubeMX軟件的特點是什么?
【答案】
(1)集成了ST有限公司的每一款型號的MCU/MPU的可配置的圖形界面,能夠自動
提示10沖突并且對于復(fù)用10可自動分配。
(2)具有動態(tài)驗證的時鐘樹。
(3)能夠很方便的使用所集成的中間件。
(4)能夠估算MCU/MPU在不同主頻運行下的功耗。
(5)能夠輸出不同編譯器的工程,比如能夠直接生成MDK、EWARM、STM32CubeIDE、
MakeFile等工程。
3.STM32CubeMX軟件的工作區(qū)有哪4個界面?
(1)Pinout&Configuration(引腳與配置)界面,這是對MCU的系統(tǒng)內(nèi)核、外設(shè)、中
間件和引腳進(jìn)行配置的界面,是主要的工作界面。
(2)ClockConfiguruion(時鐘配置)界面,通過圖形化的時鐘樹對MCU的各個時鐘
信號頻率進(jìn)行配置的界面,
(3)ProjeciManager(項目管理)界面,對項目進(jìn)行各種設(shè)置的界面。
(4)Tools(工具)界面,進(jìn)行功耗計算、DDRSDRAM適用性分析(僅用于STM32MP1
系列)的操作界面。
第4章
LSTM32CubcIDE軟件是什么?
【答案】
STM32CubeIDE是STM32Cube生態(tài)系統(tǒng)中的一個重要軟件工具,是ST官方免費提供的
STM32MCU/MPU程序開發(fā)IDE軟件.
2.STM32CubeIDE有什么特點?
【答案】
STM32CubcIDE就是在TrueSTUDIO基礎(chǔ)上改進(jìn)和升級得來的,有如下一些特點,
(1)STM32CubeIDE使用的是EclipseIDE環(huán)境,具有強大的編輯功能,其使用習(xí)慣
與TrucSTUDIO相同。
(2)STM32CubeIDE使用的是GNUC/C++編譯器,支持在STM32項目開發(fā)中使用
C++編程。
(3)STM32CubeIDE內(nèi)部集成了STM32CubeMX,在STM32CubeIDE里就可以進(jìn)行
MCU圖形化配置和代碼生成,然后在初始代碼基礎(chǔ)上繼續(xù)編程。當(dāng)然,STM32CubeIDE也
可以和獨".的STM32CubeMX配合使用。
3.STM32CubeProgrammer軟件有什么特色?
(1)可對片內(nèi)Hash進(jìn)行擦除或編程以及查看Hash內(nèi)容。
(2)支持S19、hex、elf和bin等格式的文件。
(3)支持調(diào)試接口或bootloader接口。
①STLINK調(diào)試接口(JTAG/SWD)
②UART或USBDFUbootloader接口
(4)支持對外部的存儲器的擦除或編程。
<5)支持STM32芯片的自動編程(擦除、校驗、編程、選項字配置)。
(6)支持對STM32片內(nèi)OTP區(qū)域的編程。
(7)既支持圖形化界面操作也支持命令行操作。
(8)支持對ST-Link調(diào)試器的在線固件升級。
(9)配合STM32TrustedPackageCreatortool實現(xiàn)固件加密操作。
(10)支持Windows,Linux和MacOS多種操作系統(tǒng)。
第5章
1.列舉GP1O的,作模式。
【答案】
(1)輸入浮空模式。
(2)輸入上拉模式。
(3)輸入下拉模式。
(4)模擬功能模式。
(5)具有上拉/下拉功能的開漏輸出模式。
(6)具有上拉/下拉功能的推挽輸出模式。
(7)具有上拉/下拉功能的復(fù)用功能推挽模式。
(8)具有上拉/下拉功能的復(fù)用功能開漏模式。
2.STM32F407系列微控制器每個GPIO端口有6個—引腳。
3.當(dāng)引腳被配置為模擬功能模式時,上拉/下拉功能應(yīng)被一禁止
4.當(dāng)引腳被配置為輸出模式,而輸出類型被配置為開漏時〈引腳要輸出高電平,需要
使能引腳上拉功能,
5.控制引腳輸出電平時,需要操作一ODR.寄存器:獲取引腳狀態(tài)需要操作
」DR寄存器。
6.在stm32f407的庫函數(shù)中,使能GPIOA時鐘,使用的庫函數(shù)是
HALRCCGPIOACLKENABLE。。
7.在stm32f407的庫函數(shù)中,初始化GPIO功能,使用的庫函數(shù)是_void
HAL_GPIO」ni【(GP【O_TypeDef*GPIOx,GPIOJnitTypeDef*GPIO_Inic)。
8.當(dāng)要同時初始化某個GPIO的1號、2號引腳,賦給GPIOJnitTypeDef結(jié)構(gòu)體類型
成員GPIO_Pin的值是_GPIO_PIN」|GPIO_PIN_2。
9.在sim32f407的庫函數(shù)中,讀取某個特定GPIO引腳狀態(tài),使用的庫函數(shù)是
GPIO_PinStatcHAL_GPIO_RcadPin(GPIO_TypcDcf之GPIOx,uint16_tGPIO_Pin)。
10.在stm32f407的庫函數(shù)中,設(shè)定某些特定GPIO引腳輸出狀態(tài),使用的庫函數(shù)是void
HAL_GPIO_Wri(ePin(GPIO_TypeDef:!:GPIOx,uin(16_tGPIO_Pin,GPIO_PinSta(ePinSiate)。
H.結(jié)合電路說明推挽輸出和開漏輸出的區(qū)別。
【答案】在推挽輸出下,輸出電路中有PMOS和NMOS管組成的推挽結(jié)構(gòu)電路,當(dāng)ODR
寄存器中對應(yīng)位寫時,NMOS管截止,PMOS管導(dǎo)通,引腳輸出高電平。當(dāng)ODR寄存器
中對應(yīng)位寫,0'時,NMOS管導(dǎo)通,PMOS管截止,引腳輸出低電平。
開
騙
1女心
出
豪
注TTL施密特V.x,
<觸發(fā)器
開/
建保護(hù)
臉人驅(qū)動耨-I科2S二極管
我飛上
Sr-KJPlC
會輸出強動器-引碑
開/關(guān)
亳
冢拉K保護(hù)
-----C|FP-MOS
三4:極管
讀E籌輸出控制v
]FN-MOS?亡
Vx、推挽
在開漏輸出下,輸出電路中有只有NMOS管,當(dāng)ODR寄存器中對應(yīng)位寫“,時,NMOS
管截止,這是引腳處于浮空狀態(tài),必須通過上拉電阻使引腳輸出高電平。當(dāng)ODR寄存器中
對應(yīng)位寫'()'時,NMOS管導(dǎo)通,PMOS管截止,引腳輸出低電平。
費
吐
s祐
弟
V
籌
PIO
輸出控制
12.當(dāng)把引腳配置為模擬輸入模式時,那么它是否還具備耐5V功能?
【答案】
不具備耐5V功能"
此時,引腳輸入通道和數(shù)字電路隔離,處于模擬電路狀態(tài)
13.簡述片上外設(shè)使用初始化流程。
【答案】
(I)使能GPIO的時鐘(非常重要),涉及以下文件。
(2)設(shè)置對應(yīng)于片上外設(shè)使用的GPIO工作模式。
(3)如果使用復(fù)用功能,需要單獨設(shè)置每一個GPIO引腳的復(fù)用功能。
(4)在應(yīng)用程序中讀取引腳狀態(tài)、控制引腳輸出狀態(tài)或使用復(fù)用功能完成特定功能。
14.編寫程序,將GPIOD的1號、3號、5號、7號、9號引腳配置為推挽輸出模式,
速度為50MHz,將0、2號、4號、6號、8號引腳配置為上拉輸入模式。
【答案】
GPIO_InitTypeDefGPIO_InitStruct={0};
_HAL_RCC_GPIOD_CLK_ENABLE();
GPIO.InitStruct.Pin=GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4
|GPIO_PIN_6|GPIO_PIN_8;
GPIOJnitStruct.Mcde=GPIO_MODE」NPUT;
GPIOJnitStruct.Pull=GPIO_PULLUP;
HAL_GPIO_Init(GPIOD.&GPIO_InitStruct);
GPIOJnitStruct.Pin=GP1O_PIN_9|GPIO_PIN_1|GPIO_PIN_3|GP1O_PIN_5
|GPIO_PIN_7;
GPIOJnitStruct.Mcde=GPIO_MODE_OUTPUT_PP;
GPIOJnitStruct.Pull=GPIO_PULLUP;
GPIOJnitSiruct.Speed=GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOD,&GPIO」nitStruct);
15.編寫程序,將GPIOD的1號、5號、7號引腳輸出高電平,3號、9號引腳輸出低
電平,并將引腳2號、6號、8號上的狀態(tài)讀到處理器中。
【答案】
unsignedshortinta,b,c;
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_1|GPIO_PIN_5|GPIO_PIN_7,
GPIO_PIN_SET);
HAL_GPIO_WritePimGPIOD,GPIO_PIN_3|GPI0_PIN_9,GPIO_PIN_RESET);
a=HAL_GPIO_ReadPin(GPIOD,GPI0_PIN_2);
b=HAL_GPIO_ReadPin(GPIOD,GPI0_PIN_6);
c=HAL_GPIO_RcadPin(GPIOD,GPIO_PIN_8);
16.有獨立按鍵電路,連接在STM32F407ZGT6微控制器的GPIOE的5號引腳,要求
在每次按鍵后將連接GPIOB的2號引腳上的LED燈反轉(zhuǎn),電路如圖所示。
+3.3V
(\ZLED3
e
■Q___________1^2
330c
請編寫程序?qū)崿F(xiàn)按鍵動作的檢測,編寫以下程序。
(1)主程序。
(2)連接按鍵引腳和LED引腳的初始化程序。
(3)按鍵檢測程序。
假設(shè)已有延時函數(shù)voiddelay_ms(u!6nms);,此函數(shù)可直接調(diào)用。
【答案】
#defineKEY_ON1
#defineKEY_OFF0
(1)
intmain(void)
(
delay_init(168);〃初始化延時函數(shù)
LED_GPIO_Config();
Kcy_GPIO_Config();
while(l)
I
if(Key_Scan(GPIOE,GPIO_PIN_5)==KEY.ON)
(
HAL_GPIO_TogglePin(GPIOB.GPIO_PIN_2);
(2)
voidKey_GPIO_Cr)nllg(void)
GPIO_InitTypeDefGPIO_InitSlruct={0};
_HAL_RCC_GPIOE_CLK_ENABLE();
GPIO」nitStruct.Pin=GPIO_PIN_5;
GPIO_InitStruct.Mode=GPIO_MODE」NPUT;
GPIO_InitStruct.Pull=GPIO.PULLUP;
HAL_GPIO」nii(GPIOE,&GPIO」ni【S【ruct);
}
voidLED_GPIO_Config(void)
(
GPIOJnitTypcDcfGPIOJnitStruct={0};
_HAL_RCC_GPIOB_CLK_ENABLE();
GPIOJnitS:ruct.Pin=GPIO_PIN_2;
GP【O」nit£rucl.Mode=GPIO_MODE_OUTPUT_PP;
GPIOJnitS:ruct.PulI=GPIO.PULLUP;
GPIOJnitS:ruct.Speed=GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB,&GPIO_InitStruct);
}
(3)
uint8_tKcy_Scan(GPlO_TypcDcf*GPlOx,uintl6_tGPIO_Pin)
(
if(HAL_GPIO_ReadPin(GPIOx,GPIO_Pin)==KEY_ON)
I
delay_ms(100);〃去抖動
if(HAL_GPIO_ReadPin(GPIOx,GPIO_Pin)==KEY_ON)
returnKEY_ON;
else
returnKEY_OFF;
1
else
returnKEY_OFF;
17.有矩陣按鍵,其電路如圖所示。
(1)矩陣按鍵掃描原理和流程圖。
(2)編寫程序?qū)崿F(xiàn)矩陣按鍵控制,按鍵SI?S4分別時應(yīng)數(shù)字1-4(引腳初始化程序和
按鍵控制程序)。
【答案】
(1)
①將列線設(shè)置為輸出模式(圖中PBO和PB1),并分別在PBO和PB1上輸出低電平。
行線設(shè)置為輸入模式(圖中PB2和PB3)o都使能上拉。
②讀取PB2和PB3狀態(tài),判斷是否有按鍵按下。
(判斷原則:PB2和PB3都是高電平時,沒有按鍵按下。PB2和PB3有任何一
個為低電平是,有按鍵按下。
判斷原理:在沒有按鍵按下去的時候,由于上拉電阻的存在,PB2和PB3都是
高電平,讀取狀態(tài)時,PB2=1,PB3=K如果有按鍵按下去的話,摸一個行線和列線
連接在一起。由于PBO和PB1都為低電平,因此連接在一起的行線會被列線下拉到低
電平。這時,在讀取PB2和PB3狀態(tài)時,就不會全是高電平。
例如:當(dāng)按下S1時,PB1和PB2連在一起,PB2被PB1拉低至IJ低電平。讀取
PB2和PB3狀態(tài)時,PB2=0,PB3=lo)
有按鍵按下貝!繼續(xù)③,反之則結(jié)束。
③延時去抖動。典型值是延時10ms,不同的按鍵類型,時間長度不一樣。
④在此判斷是否有按腱按下,原理同步驟②
②?都判斷有按鍵按下時,繼續(xù)⑤。反之則結(jié)束。
⑤保存讀取的PB2和PB3的狀態(tài),作為判別行號的依據(jù)。
⑥將行線設(shè)置為輸出模式(圖中PB2和PB3),并分別在PB2和PB3上輸出低電平。
列線設(shè)置為輸入模式(圖中PBO和PB1)o都使能I.拉。
⑦讀取PB0和PB1的狀態(tài),并保存。作為判別列線的依據(jù)。
⑧根據(jù)⑤⑦兩個步得到的信息,算出是哪一個按鍵被按卜去了。
矩陣鍵盤掃描流程圖:
(2)
/*將列設(shè)置為輸入,行設(shè)置為輸出*/
voidGPIO_LieIN_HangOUT(void)
(
GPIOJnitTypeDefGPIOJnitStruct={0);
_HAL_RCC_GPIOB_CLK_ENABLE();
GPIO」ni〔Slruct.Pin=GPIO_PIN_2|GPIO_PIN_3;
GPIOJnitStruct.Mode=GPIO_MODE_OUTPUT_PP;
GPIOJnitStruct.PulI=GPIO_PULLUP;
GPIOJnitStruct.Spccd=GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Inii(GPIOB,&GPIO_Ini(Siruct);
GPIOJnitStruct.Pin=GPIO_PIN_0|GPIO_PIN_1;
GPIOJnitStruct.Mode=GPIO_MODE_INPUT;
GPIOJnitSirucl.Pull=GPIO_PULLUP;
HAL_GPIO」nit(GPIOB,&GPIO」nitStruct);
/*將列設(shè)置為輸出,行設(shè)置為輸入*/
voidGPIO_LieOUT_HangIN(void)
GPIOJnilTypeDefGPIOJnitSlruct={0};
_HAL_RCC_GPIOB_CLK_ENABLE();
GPIO」nitStruct.Pin=GPIO_PIN_0|GPIO_PIN_1;
GPICLInitStruct.Mode=GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull=GPIO_PULLUP;
GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_HIGH;
HAL_GPIOJnit(GPIOB,&GPIO_InitStruct);
GPIO」nitStruct.Pin=GPIO_PIN_2|GPIO_PIN_3;
GPIO」nitStruct.Mode=GPIO_MODE_INPUT;
GPIOJnitStruct.Pull=GPIO.PULLUP;
HAL_GPIO」nit(GPIOB,&GPIO」nitStruct);
voidKEY_SCAN(void)
{
u8Lie_Data,Hang_Data;
GPIO_LicOUT_HangIN();
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0|GPIO_PIN_1,GPIO_PIN_RESET);〃將列
設(shè)置為低電平,掃品行
if<(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_All)&OxOa)!=OxOa)
(
delay_ms(100);〃去抖動
if((HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_All)&OxOa)!=OxOa)
(
Hang_Data=HAI._GPIO_ReadPin(GPrOF^,PIO_PIN_A1l)&OxOa;〃保存行掃
描結(jié)果
GPIO_LieIN_HangOUT();
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2|GP1O_P【N_3,
GPIO_PIN_RESET);//#行設(shè)置為低電平,掃描列
Lie_Data=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_All)&OxOa;〃保存歹U掃
描結(jié)果
switch(Hang_Data|Lie_Data)
{
case0x09://
rcturn(l);
break;
caseOxa://
retum(2);
break;
case0x05://
return(3);
break;
case0x06://
return(4);
break;
default:
break;
else
return(O);
第6章
1.簡述STM32F407微控制器中的NVIC中斷管理方法。
【答案】
Cortex-M4內(nèi)核中定義了兩個優(yōu)先級的概念:搶占優(yōu)先級和響應(yīng)優(yōu)先級,每個中斷源都
需要被指定這兩種優(yōu)先級,由兩者的組合得到中斷的優(yōu)先級別。
NVIC對中斷優(yōu)先級的管理方法如下。
<1)搶占優(yōu)先級較高的中斷可以打斷正在進(jìn)行的搶占優(yōu)先級較低的中斷,不同搶占優(yōu)先
級的中斷可以實現(xiàn)中斷的嵌套。
(2)搶占優(yōu)先級相同的中斷,響應(yīng)優(yōu)先級高的不可以打斷響應(yīng)優(yōu)先級低的中斷.
(3)當(dāng)兩個搶占優(yōu)先級相同的中斷同時發(fā)生的情況下,哪個中斷響應(yīng)優(yōu)先級高,哪個中
斷就先執(zhí)行。
(4)如果兩個中斷的搶占優(yōu)先級和響應(yīng)優(yōu)先級都一樣,則哪個中斷先發(fā)生,哪個中斷就先
執(zhí)行。
(5)如果兩個中斷的搶占優(yōu)先級和響應(yīng)優(yōu)先級都一樣,且同時請求,則根據(jù)異常中斷向
量表中的排位順序決定哪個中斷先執(zhí)行。
2.中斷優(yōu)先級編號越小,則其優(yōu)先級越高。
3.中斷搶占優(yōu)先級高的是否可以搶占優(yōu)先級低的中斷流程?可以。
4.響應(yīng)搶占優(yōu)先級高的是否可以搶占優(yōu)先級低的中斷流程?在搶占優(yōu)先級?致時,
不可以。
5.兩個中斷搶占優(yōu)先級和響應(yīng)優(yōu)先級都相同,同時向內(nèi)核申請中斷,怎么響應(yīng)中斷?
【答案】
按照兩個中斷在中斷向量表中的位置決定。向量表中位置靠前的先被響應(yīng)。
6.假定設(shè)置中斷優(yōu)先級組為1,然后設(shè)置:中斷3(RTC中斷)的搶占優(yōu)先級為1,響
應(yīng)優(yōu)先級為1:中斷6(外部中斷0)的搶占優(yōu)先級為3,響應(yīng)優(yōu)先級為0;中斷7(外部中
斷1)的搶占優(yōu)先級為I,響應(yīng)優(yōu)先級為6。那么,這3個中斷的優(yōu)先級順序為(由高到底):
中斷3、中斷7、中斷6
7.voidHAL_NVIC_SetPriority(IRQn_TypeIRQn,uint32_tPreemptPriority,uint32_t
SubPriority)函數(shù)用于設(shè)置中斷搶占優(yōu)先級和了優(yōu)先級。
8.voidHAL_NVIC_EnablcIRQ(IRQn_TypcIRQn)函數(shù)用于使能中斷。
9.voidHAL_NVIC_SetPriorityGrouping(uin(32_tPriorilyGroup)函數(shù)用來配置中斷優(yōu)先
級組。
10.在頭文件stm32f4xx.h中定義的中斷編號,是以枚舉類型定義的。請問外部中斷0
的編號是____6。
11.當(dāng)中斷優(yōu)先級組設(shè)置為2組時,搶占優(yōu)先級和響應(yīng)優(yōu)先級可以分別設(shè)置為哪些優(yōu)先
級?
【答案】
搶占優(yōu)先級:0~3
響應(yīng)優(yōu)先級:0~3
12.編寫NVIC中斷初始化程序?qū)崿F(xiàn)如下功能。
(I)設(shè)置中斷優(yōu)先級組為2組。
(2)設(shè)置外部中斷2的搶占優(yōu)先級為0,響應(yīng)優(yōu)先級為2。
(3)設(shè)置定時器2中斷的搶占優(yōu)先級為2,響應(yīng)優(yōu)先級為1。
(4)設(shè)置USART2的中斷搶占優(yōu)先級為3,響應(yīng)優(yōu)先級為3。
并說明當(dāng)同時出現(xiàn)以上3個中斷請求時,中斷服務(wù)程序執(zhí)行的順序。
【答案】
staticvoidMX_NVIC」nit(void)
|
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2);
HAL_NVIC_SetPriority(EXTI2_IRQn,0,2);
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
HAL_NVIC_SetPriority(TIM2_IRQn,2,1);
HAL_NVIC_EnableIRQ(TIM2」RQn);
HAL_NVIC_SetPriority(USART2_IRQn,3,3);
HAL_NVIC_EnablcIRQ(USART2」RQn);
}〃初始化函數(shù)結(jié)束
外部中斷2、定時器2中斷、USART2的中斷
13.外部中斷的中斷請求信號可以是控制器外部產(chǎn)生由GPIO引腳引入的,也可以是由
控制器內(nèi)部一些片上外設(shè)產(chǎn)生的。這一說法是否正確?—正確。
14.每個GPIO引腳都可以作為外部中斷信號輸入引腳,GP1O引腳編號相同的映射到
同一個EXTI線,那么GPIOA的0號引腳映射到EXTI線_0,GPIOD的0號引腳映
射到EXTI線0—,GPIOC的5號引腳映射到EXTI線5—,GPIOG的10號引
腳映射到EXTI線10―。
15.外部中斷信號輸入的觸發(fā)信號形式可以是一上升沿觸發(fā)下降沿觸發(fā)_、一邊沿觸
發(fā)一、O
16.每個外部中斷在中斷向量表中,是否都獨立占用一個位置?_不是一
17.外部中斷—5~9共用一個中斷向量和外部中斷_10?15一共用一個中斷向量。
18.外部中斷的中斷。在庫函數(shù)啟動文作中定義的默認(rèn)中斷函數(shù)名是
_EXTIO_lRQHandlcr_o
19.函數(shù)HAL_EXTI_SetConfigLine(&EXTIO_HaiKileStruct,&EXTIO_ConfigStructure)
有什么功能?
【答案】
配置EXTIO中斷線。
20.函數(shù)HAL_NVIC_SetPiioiity(EXTIOJRQn,0,0)有什么功能?
【答案】
初始化外部中斷EXTI0的優(yōu)先級。
21.應(yīng)用外部中斷,需要先使能GPIO端口的時鐘和—SYSCFG一時鐘。
22.試述初始化外部中斷的步驟。
【答案】
(1)使能用到GPIO時鐘。
(2)初始化相應(yīng)GPIO的引腳為輸入。
(3)設(shè)置GPIO引腳與EXTI線的映射關(guān)系。
(4)初始化工作類型、設(shè)置觸發(fā)條件、使能等等。
(5)配置中斷分組(NVIC),并初始化相應(yīng)中斷通道的優(yōu)先級及使能/禁止。
(6)編寫中斷服務(wù)函數(shù)。
(7)編寫中斷服務(wù)程序處理內(nèi)容。
23.初始化外部中斷1:將GPIOA的I號引腳作為輸入引腳,中斷模式,上升沿觸發(fā),
中斷優(yōu)先級組為3組,搶占優(yōu)先級為3,響應(yīng)優(yōu)先級為1,并使能中斷。
_HAL_RCC_GPIOA_CLK_ENABLE();
HAL_NVIC_SctPriorityGrouping(NVIC_PRIORlTYGROUP_3);
GPIOJnitStruct.Pin=GPIO_PIN_1;
GPIOJnitSlruct.Mcde=GPIO_MODEJT_RISING;
GPIOJnitStruct.Pull=GPIO_NOPULL;
HAL_GPIO_Init(GPIOA,&GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTIl_IRQn,3,1);
HAL_NVIC_EnablcIRQ(EXTIl」RQn);
24.外部中斷被掛起后,不能硬件清除,需要在相應(yīng)的中斷服務(wù)程序中將掛起標(biāo)志清除,
使用的函數(shù)是HAL_GPIO_EXTI_CLEAR」T(_EXTI_LINE_)。
25.根據(jù)下圖所示,編寫程序以完成外部中斷初始化,中斷輸入引腳為PE5,上升沿檢
測方式。
【答案】
GPlO_InitTypcDcfGPIO_InitStruct={()};
//-------------第1步--------------
產(chǎn)開啟按鍵GPIO口的時鐘*/
_HAL_RCC_GPIOE_CLK_ENABLE();
//-------------第2步--------------
/*選擇按鍵的引腳,/
GPIOJnitStruct.Pin=GPIO_PIN_5;
/*設(shè)置引腳為外部中斷模式,上5沿觸發(fā)*/
GPIOJnitStruct.Mode=GPIO_MODE_IT_RISING;
/*設(shè)置引腳不上拉也不下拉*/
GPIO」nitStruct.Pull二GPI0_N0PULL;
/*使用工面的結(jié)構(gòu)體初始化面鍵*/
HAL_GPIO」nit(GPIOE,&GPIO」nitStruct);
//-------------第3步--------------
/*配置NVIC為優(yōu)先級組2,整個程序處于同一組列
HAL_NVIC_SelPriorityGrouping(NVIC_PRIORITYGROUP_2);
//.............笫4步..............
/*配置搶占優(yōu)先級:1,子優(yōu)先級:1*/
HAL_NVIC_SctPriority(EXTI5_IRQn,I,1);
//-------------第5步--------------
/*使能中斷通道*/
HAL_NVIC_EnableIRQ(EXTI5JRQn);
15.編寫14題的外部中斷的服務(wù)程序,完成LED燈(PB2)的開關(guān)控制。
【答案】
voidEXTI5_IRQHandlcr(void)
{
//LED狀態(tài)轉(zhuǎn)換
HAL_GPIO_TogglePin(GPIOB,GPIO_Pin_2);
第7章
1.STM32F407定時器的計數(shù)方式有遞增計數(shù)一、遞減計數(shù)一、中心對齊。
2.STM32F407計數(shù)寄存器是TIMxCNT,自動重載寄存器是TIMxARR,預(yù)
分頻寄存器是TIMxPSC
3.若TIM.jPSC=4,則時鐘源的預(yù)分頻系數(shù)是5o
4.若TIM.i_ARR=89,則一次計數(shù)溢出的計數(shù)次數(shù)是—90。
5.什么是PWM信號?什么是占空比?請繪圖舉例。
【答案】
PWM(PulseWidthModulation):脈沖寬度調(diào)制,簡稱脈寬調(diào)制。
PWM信號:周期內(nèi)高電平占空比可調(diào)的信號。
占空比:一個周期內(nèi)高電平持續(xù)時間與一個周期時間的比值。
6.遞增計數(shù)模式是從0計數(shù)到_ARR的值,然后產(chǎn)生一次_溢出事件
7.遞減計數(shù)模式是從_ARR一計數(shù)到0的值,然后產(chǎn)生一次向下溢出。中心對齊計數(shù)模
式是先以遞增計數(shù)模式,從0計數(shù)到_ARR-1__,然后產(chǎn)生一次向上溢出,再在從_ARR
計數(shù)到—1—,然后產(chǎn)生一次向下溢出。
8.當(dāng)使能了比較輸出功能,輸出PWM波,在邊沿比較模式下,寄存器—ARR
控制PWM周期,寄存器_CCR_控制占空比。
9.當(dāng)使能了比較輸出功能,輸出PWM波,在邊沿比較模式下,當(dāng)TIM.JCNT計數(shù)值
在O~CCR-1寄存器范圍時,輸出有效電平;在CCR~ARR范圍時,輸出反向電平。
10.定時器TIM2掛載在APB1總線上,假設(shè)PCLKl=45MHz,選擇內(nèi)部時鐘作為計數(shù)時
鐘源(默認(rèn)情況下這一時鐘源頻率=2xPCLKl),TIM2_PSC=8,TIM2_ARR=49,則計數(shù)溢出
一次,時間為多長?怎么計算?
【答案】
(TIM2_PSC+1)*(TIM2_ARR+1)790000000=9*50/90000000=5us
11.編程序,使用TIM1產(chǎn)生1s的定時。
【答案】
TIM1掛載在APB2總線上,在系統(tǒng)時鐘=180MHz時,PCLK2=90MHz,TIMI的內(nèi)部
時鐘源=PCLK2*2=180MHz?
Tout(定時時間)=ls=(ARR+l)(PSC+l)/1800OCO000,則可以取PSC=18000-1,
ARR=10000-lo
TIM_HandleTypcDefhtinil;
/*-------------第1步--------------*/
//開啟TIM1時鐘
_HAL_RCC_TIM1_CLK_ENABLE();
/*-------------第2步--------------*/
TIM_ClockConfigTypeDefsCIockSourceConfig={0}:
TIM_MasterConfigTypeDefsMasterConfig={0};
htim1.Instance=TIMI;
htiml.lnit.Prcscalcr=17999;
htiml.lnit.CounterMode=TIM_COUNTERMODE_UP;
htiml.Init.Period=9999;
h(iml.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
htim1.Inil.RepetitionCounter=0;
htiml.Init.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE;
if(HAL_TIM_Base_Inil(&hlim1)!=HAL_OK)
{
Error_Handler();
}
sClockSourceCo
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業(yè)健康與員工績效關(guān)聯(lián)研究
- 漳州2025年福建漳州市詔安縣招聘公辦學(xué)校編外特崗高中教師27人筆試歷年參考題庫附帶答案詳解
- 河南2025年河南大學(xué)專職輔導(dǎo)員(博士)招聘12人筆試歷年參考題庫附帶答案詳解
- 杭州浙江杭州市勝利筧成幼兒園編外招聘筆試歷年參考題庫附帶答案詳解
- 揚州江蘇揚州市江都中醫(yī)院招聘備案制專業(yè)技術(shù)人員5人筆試歷年參考題庫附帶答案詳解
- 廣西2025年廣西農(nóng)業(yè)科學(xué)院經(jīng)濟作物研究所招聘筆試歷年參考題庫附帶答案詳解
- 宿州2025年安徽宿州十一中教育集團教師招聘22名筆試歷年參考題庫附帶答案詳解
- 寧德2025年福建寧德市周寧縣教育局招聘緊缺急需及高層次人才11人筆試歷年參考題庫附帶答案詳解
- 吉林2025年吉林省檢察機關(guān)從吉林司法警官職業(yè)學(xué)院中招聘聘用制文職人員12人筆試歷年參考題庫附帶答案詳解
- 南通江蘇南通市海門區(qū)工商業(yè)聯(lián)合會招聘政府購買服務(wù)人員筆試歷年參考題庫附帶答案詳解
- 創(chuàng)傷性脾破裂的護(hù)理
- 蓬深102井鉆井工程(重新報批)項目環(huán)境影響報告表
- 大模型金融領(lǐng)域可信應(yīng)用參考框架
- (新教材)2025年人教版七年級上冊歷史期末復(fù)習(xí)??贾R點梳理復(fù)習(xí)提綱(教師版)
- 中國全色盲診療專家共識2026
- 中國地質(zhì)大學(xué)武漢本科畢業(yè)論文格式
- 鋼鐵工藝流程課件
- 自流平地面施工安全方案
- 2025年湖北煙草專賣局考試真題
- 2025年小學(xué)六年級數(shù)學(xué)試題探究題
- 車載光通信專題學(xué)習(xí)
評論
0/150
提交評論