STM32Cube嵌入式系統(tǒng)應用章節(jié)練習題及答案(主觀題)_第1頁
STM32Cube嵌入式系統(tǒng)應用章節(jié)練習題及答案(主觀題)_第2頁
STM32Cube嵌入式系統(tǒng)應用章節(jié)練習題及答案(主觀題)_第3頁
STM32Cube嵌入式系統(tǒng)應用章節(jié)練習題及答案(主觀題)_第4頁
STM32Cube嵌入式系統(tǒng)應用章節(jié)練習題及答案(主觀題)_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《STM32Cube嵌入式系統(tǒng)應用》習題

第1章

1.嵌入式系統(tǒng)處理器有哪幾種?如何選擇?

2.簡述馮?諾依曼結構和哈佛結構的區(qū)別。

3.嵌入式系統(tǒng)與計算機系統(tǒng)有什么區(qū)別?

4.什么是嵌入式系統(tǒng)?

5.嵌入式系統(tǒng)與通用計算機系統(tǒng)的異同點?

6.嵌入式系統(tǒng)的特點主要有哪些?

7.常見的嵌入式操作系統(tǒng)有哪幾種?

8.ARM處理器有什么特點?

9.簡述ARM處理器的應用領域。

10.什么嵌入式微處理器分類。

li.Cortex-M系列處理器有哪些特征?

第2章

1.STM32F407X系列微控制器支持幾種時鐘源?

2.簡要說明HSE時鐘的啟動過程。

3.如果HSE晶體振蕩器失效,哪個時鐘被作為備用時鐘源?

4.簡要說明LSI校準的過程。

5.當STM32F407X系列處理器采用25MHz的高速外部時鐘源時,通過PLL倍頻后能夠得

到的最高系統(tǒng)頻率是多少?此時AHB、APB1、APB2總線的最高頻率分別是多少?

6.簡要說明在STM32F407X上不使用外部晶振時OSC」N和OSCJ3UT的接法。

7.簡要說明在使用HSE時鐘時程序設置時鐘參數的流程。

第3章

1.STM32CubcMX軟件是什么?

2.STM32CubeMX軟件的特點是什么?

3.STM32CubcMX軟件的工作區(qū)有哪4個界面?

第4章

l.STM32CubeIDE軟件是什么?

2.STM32CubeIDE有什么特點?

3.STM32CubeProgrammer軟件有什么特色?

第5章

1.列舉GPIO的工作模式。

2.STM32F407系列微控制器每個GPIO端口有一引腳。

3.當引腳被配置為模擬功能模式時,上拉/下拉功能應被

4.當引腳被配置為輸出模式,而輸出類型被配置為開漏時,引腳要輸出高電平,需要

5.控制引腳輸出電平時,需要操作—寄存器;獲取引腳狀態(tài)需要操作—寄存器。

6.在STM32f407的庫函數中,使能GPIOA時鐘,使用的庫函數是___。

7.在STM32f407的庫函數中,初始化GPIO功能,使用的庫函數是一。

8.當要同時初始化某個GPIO的1號、2號引腳,賦給GPIO」nitTypeDef結構體類型

成員GPIO_Pin的值是。

9.在STM32f407的庫函數中,讀取某個特定GPIO引腳狀態(tài),使用的庫函數是。

10.在STM32f407的庫函數中,設定某些特定GPIO引腳輸出狀態(tài),使用的庫函數

11.結合電路說明推挽輸出和開漏輸出的區(qū)別。

12.當把引腳配置為模擬輸入模式時,那么它是否還具備耐5V功能?

13.簡述片上外設使用初始化流程。

14.編寫程序,將GPIOD的1號、3號、5號、7號、9號引腳配置為推挽輸出模式,

速度為50MHz,將0、2號、4號、6號、8號引腳配置為上拉輸入模式。

15.編寫程序,將GPIOD的1號、5號、7號引腳輸出高電平,3號、9號引腳輸出低

電平,并將引腳2號、6號、8號上的狀態(tài)讀到處理器中。

16.有獨立按鍵電路,連接在STM32F407ZGT6微控制器的GPIOE的5號引腳,要求

在每次按鍵后將連接GPIOB的2號引腳上的LED燈反轉,電路如圖所示。

+3.3V

〈\ZLED3

CI

PB2

請編寫程序實現按鍵動作的檢測,編寫以下程序。

(1)主程序。

(2)連接按鍵引腳和LED引腳的初始化程序。

(3)按鍵檢測程序。

假設已有延時函數voiddelay_ms(u!6nms);,此函數可直接調用。

17.有矩陣按鍵,其電路如圖所示。

(1)矩陣按鍵掃描原理和流程圖。

(2)編寫程序實現矩陣按鍵控制,按鍵S1?S4分另!對應數字—4(引腳初始化程序和

按鍵控制程序)。

第6章

1.簡述STM32F407微控制器中的NVIC中斷管理方法。

2.中斷優(yōu)先級編號越小,則其優(yōu)先級越—o

3.中斷搶占優(yōu)先級高的是否可以搶占優(yōu)先級低的中斷流程?

4.響應搶占優(yōu)先級高的是否可以搶占優(yōu)先級低的中斷流程?o

5.兩個中斷搶占優(yōu)先級和響應優(yōu)先級都相同,同時向內核申請中斷,怎么響應中斷?

6.假定設置中斷優(yōu)先級組為I,然后設置:中斷3(RTC中斷)的搶占優(yōu)先級為1,響

應優(yōu)先級為1;中斷6(外部中斷0)的搶占優(yōu)先級為3,響應優(yōu)先級為0:中斷7(外部中

斷1)的搶占優(yōu)先級為1,響應優(yōu)先級為6。那么,這3個中斷的優(yōu)先級順序為(由高到

底):o

7.voidHAL_NVIC_SetPriority(IRQn_TypeIRQn,uint32_tPreemptPriority,uint32_t

SubPriority)函數用于設置_____。

8.voidHAL_NVIC_EnablcIRQ(IRQn_TypcIRQn)函數用于。

9.voidHAL_NVIC_SetPriorityGrouping(uin(32_tPriorityGroup)函數用來配置_____。

10.在頭文件STM32f4xx.h中定義的中斷編號,是以枚舉類型定義的。請問外部中斷0

的編號是。

11.當中斷優(yōu)先級組設置為2組時,搶占優(yōu)先級和響應優(yōu)先級可以分別設置為哪些優(yōu)先

級?

12.編寫NVIC中斷初始化程序實現如下功能。

(1)設置中斷優(yōu)先級組為2組。

(2)設置外部中斷2的搶占優(yōu)先級為0,響應優(yōu)先級為2。

(3)設置定時器2中斷的搶占優(yōu)先級為2,響應優(yōu)先級為1。

(4)設置USART2的中斷搶占優(yōu)先級為3,響應優(yōu)先級為3。

并說明當同時出現以上3個中斷請求時,中斷服務程序執(zhí)行的順序。

13.外部中斷的中斷請求信號可以是控制器外部產生由GPIO引腳引入的,也可以是由

控制器內部一些片上外設產生的。這一說法是否正確?。

14.每個GPIO引腳都可以作為外部中斷信號輸入引腳,GPIO引腳編號相同的映射到

同一個EXTI線,那么GPIOA的0號引腳映射到EXTI線,GPIOD的0號引腳映射

到EXTI線,GPIOC的5號引腳映射到EXTI線,GPIOG的10號引腳映射

至I]EXTI線o

15.外部中斷信號輸入的觸發(fā)信號形式可以是_、_、_、。

16.每個外部中斷在中斷向量表中,是否都獨立占用一個位置?_不是一

17.外部中斷共用一個中斷向量和外部中斷一共用一個中斷向量。

18.外部中斷的中斷0在庫函數啟動文佇中定義的默認中斷函數名是

_EXTI0_IRQHandlcr_o

19.函數HAL_EXTI_SctConfigLinc(&EXTIO_Ha?dlcStruct,&EXTI0_ConfigStructurc)

有什么功能?

20.函數HAL_NVIC_SelPriori【y(EXTIO」RQn,0,0)有什么功能?

21.應用外部中斷,需要先使能GPIO端口的時鐘和時鐘。

22.試述初始化外部中斷的步驟。

23.初始化外部中斷1:將GPIOA的1號引腳作為輸入引腳,中斷模式,上升沿觸發(fā),

中斷優(yōu)先級組為3組,搶占優(yōu)先級為3,響應優(yōu)先級為1,并使能中斷。.

24.外部中斷被掛起后,不能硬件清除,需要在相應的中斷服務程序中將掛起標志清除,

使用的函數是

25.根據下圖所示,編寫程序以完成外部中斷初始化,中斷輸入引腳為PE5,上升沿檢

測方式。

3.3V+3.3\

N\ZLED3

4ZZF

33()。

GND

15.編寫14題的外部中斷的服務程序,完成LED燈(PB2)的開關控制。

第7章

1.STM32F407定時器的計數方式有、_、—。

2.STM32F407計數寄存器是,自動重載寄存器是—,預分頻寄存器是

3.若TIMx_PSC=4,則時鐘源的預分頻系數是o

4.若TIM.jARR=89,則一次計數溢出的計數次數是。

5.什么是PWM信號?什么是占空比?請繪圖舉例。

6.遞增計數模式是從0計數到的值,然后產生一次—溢出事件一°

7.遞減計數模式是從_ARR一計數到0的值,然后產生一次向下溢出。中心對齊計數模

式是先以遞增計數模式,從0計數到,然后產生一次向上溢出,再在從計數

到,然后產生一次向下溢出。

8.當使能了比較輸出功能,輸出PWM波,在邊沿比較模式下,寄存器控制

PWM周期,寄存器控制占空比。

9.當使能了比較輸出功能,輸出PWM波,在邊沿比較模式下,當TIMAICNT計數值

在范圍時,輸出有效電平;在范圍時,輸出反向電平。

10.定時器TIM2掛載在APB1總線上,假設PCLKl=45MHz,選擇內部時鐘作為計數時

鐘源(默認情況下這一時鐘源頻率=2xPCLKI),TIM2_PSC=8,TIM2_ARR=49,則計數溢出一

次,時間為多長?怎么計算?

11.編程序,使用TIM1產生1s的定時。

12.編程序,使用TIM3產生PWM波。

13.編程序,使用TIM2檢測外部一未知時鐘的頻率。

第8章

1.串行異步通信數據格式是什么?用圖說明。

2.已知異步通信接I」的幀格式由1個起始位,8個數據位,無奇偶校驗位和1位停止位組成。

當該接口每分鐘傳送9600個字符時,試計算其波特率。

3.簡要說明USART的工作原理。

4.簡要說明USART數據接收配置步驟

5.當使用USART模塊進行全雙工異步通信時,需要做哪些配置?

6.編程寫出USART的初始化程序。

7.分別說明USART在發(fā)送期間和接收期間有幾種中斷事件?

8.編程序配置STM32F407微控制器的USART2為以下功能:波特率=9600bps,8位有

效數據位、無奇偶校驗、無硬件流控、使能接收和發(fā)送、使能接收中斷。

9.編寫USART2接收中斷的程序。

10.編寫USART2查詢式發(fā)送數據的程序。

11.怎么通過USART接收連續(xù)、不定長的數據流?

第9章

1.簡要說明SPI總線的工作模式種類和特點。

2.簡要說明SPI硬件弓腳的作用?

3.分別寫出SPI主、從模式的配置步驟。

4.要監(jiān)控SPI總線的狀態(tài),有幾個狀態(tài)標患可以通述應用程序使用?簡單說明各標志位的

作用。

5.編寫程序配置SPI總線初始化。

6.SPI共有幾個中斷源?

第10章

1.簡要說明12c的結構與工作原理。

2.簡要說明12c總線的組成以及使用場合。

3.簡要說明12c總線的主要特點和工作模式。

4.簡要說明12c總線控制程序的編寫。

5.寫出在I2C主模式時的操作順序。

6.寫出利用DMA發(fā)送I2C數據時需要做的配置步驟。

7.簡要說明I2C的中斷事件有哪些?

第H章

1.STM32F407X系列芯片上集成了一個逐次逼近型模擬數字轉換器,請簡要敘述它的轉

換過程,并指出使用該A/D轉換器的注意事項。

2.寫出STM32F407ZGT6處理器的ADC模塊的所有可配置模式

3.簡要敘述STM32F407X系列芯片所集成的A/D模塊的特征。

4.簡要敘述ADC模塊的自校準模式及其意義。

5.ADC的分辨率怎么定義?ADC的分辨率和精度有什么區(qū)別?

6.分辨率為12位,參考電壓為3.3V的ADC,轉換一個模擬信號得到的結果是0x523,

請問這一模擬信號的電壓是多少?

7.STM32F407微控制器的ADC有哪些觸發(fā)方式(轉換啟動方式)?

8.STM32F407微控制器的ADC的規(guī)則組和注入組是什么意思?

9.請說明單次、連蝮、掃描的含義。

10.怎么使能ADC?怎么啟動一次規(guī)則組ADC轉換?

11.使用GP1O引腳作為ADC的模擬信號輸入通道.這一GPIO引腳需要怎么初始化?

以ADC1的AIN5通道為例。

12.編程序配置STM32F407微控制器的ADC1為以下功能.

工作在獨立模式,在規(guī)則組中轉換通道3(PA3),使能轉換結束中斷,使能ADC1,并

軟件啟動ADC1的轉換。

13.編寫第12題的中斷服務程序,在中斷服務程序中獲取轉換結果,并將其轉換成實

際電壓值(ADC的參考電壓為3.3V)。

14.ADC1使用的是DMA的哪個數據流?哪個通道?

15.請思考,怎么使用ADC1掃描轉換規(guī)則組通道I、3、5、2、4(注意轉換的順序),

并編寫實現此功能的程序。

第12章

1.簡述DMA工作原理。

2.說明DMA控制器的三種數據傳輸方向。

3.實現存儲器到存儲器的DMA數據傳輸,使用哪一個DMA數據流、通道?

4.DMA傳輸使用的數據格式(寬度)有哪些?

5.實現DMA數據傳輸的三個基本要素是什么?

6.什么是DMA突發(fā)傳輸?

7.USART1的發(fā)送功能(TX)和接收功能(RX),分別使用的是哪一個DMA的哪一

個數據流的哪一個通道?

8.在使用DMA時,都需要做哪些配置?

9.使用DMA,編寫程序實現存儲器到存儲器的DMA數據傳輸,數據源和目的地自定。

《STM32Cube嵌入式系統(tǒng)應用》HAL庫習題答案

第1章

1.嵌入式系統(tǒng)處理器有哪幾種?如何選擇?

【答案】

嵌入式處理器是嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運行的硬件單元。分為以下幾

種:

(1)嵌入式微處理器

一般用于中高端嵌入式系統(tǒng)應用場景,可跑中大型操作系統(tǒng)。

(2)嵌入式微控制器

一般用于低端嵌入式系統(tǒng)應用場景,可跑小型操作系統(tǒng)或裸機運行程序。

(3)嵌入式DSP

?般用于數據運算集中的應用場景。

(4)嵌入式SoC

在此主要指基于FPGA的SOPC系統(tǒng),處理器和FPGA系統(tǒng)混合集成。一般應用于通

信、數據中心等對數據處理實時性有要求的場景。

嵌入式系統(tǒng)處理器的選擇主要根據應用場景決定,

2.簡述馮?諾依曼結構和哈佛結構的區(qū)別。

【答案】

1)馮?諾依曼結構

1964年,馮?諾依曼簡化了計算機的結構,提出了“存儲程序''的思想,大大提高了計算機的

速度?!按鎯Τ绦颉彼枷肟梢院喕爬?點:

(1)計算機包括運算器、控制器、存儲器、輸入/輸出設備。

(2)計算機內部應采JU二進制來表示指令和數據。

(3)將編寫好的程序和數據保存到存儲器,計算機自動地逐條取出指令和數據進行分析、

處理和執(zhí)行。

在馮?諾依曼結構中,計算機系統(tǒng)由一個中央處理單元(CPU)和一個存儲器組成,數據和

指令都存儲在存儲器中,程序指令和數據不加區(qū)分,均采用數據總線進行傳輸,因此,數據訪

間和指令存取不能同時在總線上傳輸。CPU可以根據所給的地址對存儲器進行讀或寫。程序指

令和數據的寬度相同。

2)哈佛體系結構

在哈佛體系結構中,數據和程序使用各自獨立的存儲器。程序計數器PC只指向程序存儲

器而不指向數據存儲器,這樣做的后果是很難在哈佛體系結構的計算機上編寫出一個自修改的

程序(有時稱為在應用可編程,InApplicationProgramming,IAP)e哈佛體系結構具有以卜優(yōu)點:

1)獨立的程序存儲器和數據存儲器為數字信號處理提供了較高的性能。

2)指令和數據可以有不同的數據寬度,具有較高的效率。

3.嵌入式系統(tǒng)與計算鞏系統(tǒng)有什么區(qū)別?

【答案】

通用計算機系統(tǒng)的技術要求是高速、海量的數值計算,其技術發(fā)展方向是總線速度的無限

提升、存儲容量的無限擴大;而嵌入式計算機系統(tǒng)的技術要求則是智能化控制,技術發(fā)展方向

是與對象系統(tǒng)密切相關的潛入性能、控制能力與控制的可靠性不斷提高。

4.什么是嵌入式系統(tǒng)?

【答案】

嵌入式系統(tǒng)是以應用為核心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統(tǒng)對功能、

可靠性、安全性、成本、體積、重量、功耗、環(huán)境等方面有嚴格要求的專用計算機系統(tǒng)。

5.嵌入式系統(tǒng)與通用計算機系統(tǒng)的異同點?

【答案】

嵌入式系統(tǒng)和通用計算機系統(tǒng)的共同點

嵌入式系統(tǒng)和通用計算機系統(tǒng)都屬于計算機系統(tǒng),從系統(tǒng)組成上講,它們都是由硬件和軟

件構成的;工作原理是相同的,都是存儲程序機制。從硬件上看,嵌入式系統(tǒng)和通用計算機系

統(tǒng)都是由CPU、存儲器、I/O接口和中斷系統(tǒng)等部件組成;從軟件上看,嵌入式系統(tǒng)軟件和通

用計算機軟件都可以劃分為系統(tǒng)軟件和應用軟件兩類。

作為計算機系統(tǒng)的一個新興的分支,嵌入式系統(tǒng)與人們熟悉和常用的通用計算機系統(tǒng)相比

又具有以下不同點。

1)形態(tài)。通用計算機系統(tǒng)具有基本相同的外形(如主機、顯示器、鼠標和鍵盤等)并且獨

立存在;而嵌入式系統(tǒng)通常隱藏在具體某個產品或設備(稱為宿主對象,如空調、洗衣機、數

字機頂盒等)中,它的形態(tài)隨著產品或設備的不同而不同.

2)功能。通用計算機系統(tǒng)一般具有通用而復雜的功能,任意一臺通用計算機都具有文檔編

輯、影音播放、娛樂游戲、網上購物和通信聊天等通用功能;而嵌入式系統(tǒng)嵌入在某個宿主對

象中。功能由宿主對象決定,具有專用性,通常是為某個應用量身定做的。

3)功耗。目前,通用計算機系統(tǒng)的功耗一般為200W左右;而嵌入式系統(tǒng)的宿主對象通常

是小型應用系統(tǒng),如手機、MP3和智能手環(huán)等,這些設備不可能配置容量較大的電源,因此,

低功耗一直是嵌入式系統(tǒng)追求的目標,如日常生活中使用的智能手機,其待機功率100?

200mW,即使在通話時功率也只有4?5W。

4)資源。通用計算機系統(tǒng)通常擁有大而全的資源(如鼠標、鍵盤、硬盤、內存條和顯示器

等):而嵌入式系統(tǒng)受限于嵌入的宿主對象(如手機、MP3和智能手環(huán)等),通常要求小型化和

低功耗,其軟硬件資源受到嚴格的限制。

5)價值。通用計算機系統(tǒng)的價值體現在“計算”和“存儲”上,計算能力(處理器的字長和主

頻等)和存儲能力(內存和硬盤的大小和讀取速度等)是通用計算機的通用評價指標;而嵌入

式系統(tǒng)往往嵌入到某個設備和產品中,其價值一般不取決于其內嵌的處理^的性能,而體現在

它所嵌入和控制的設備。如一臺智能洗衣機往往用洗凈比、洗滌容量和脫水轉速等來衡量,而

不以其內嵌的微控制器的運算速度和存儲容量等來衡量。

6.嵌入式系統(tǒng)的特,點主要有哪些?

【答案】

通過嵌入式系統(tǒng)的定義和嵌入式系統(tǒng)與通用計算機系統(tǒng)的比較,可以看出嵌入式系統(tǒng)具有

以下特點。

1)專用性強

2)可裁剪性

受限于體積、功耗和成本等因素,嵌入式系統(tǒng)的硬件和軟件必須高效率地設計,根據實際

應用需求量體裁衣,去除冗余,從而使系統(tǒng)在滿足應用要求的前提下達到最精簡的配置。

3)實時性好

所謂實時性是指系統(tǒng)能夠及時(在限定時間內)處理外部事件。大多數實時系統(tǒng)都是嵌入

式系統(tǒng),而嵌入式系統(tǒng)多數也有實時性的要求,例如,用戶將銀行卡插入ATM機插卡LI,ATM

機控制系統(tǒng)必須立即啟動讀卡程序。

4)可靠性高

很多嵌入式系統(tǒng)必須一年365天、每天24小時持續(xù)工作,甚至在極端環(huán)境下正常運行。大

多數嵌入式系統(tǒng)都具有可靠性機制,例如,硬件的看門狗定時器、軟件的內存保護和重啟機制

等,以保證嵌入式系統(tǒng)在出現問題時能夠重新啟動,保障系統(tǒng)的健壯性。

5)生命周期長

遵從于摩爾定律,通用計算機的更新換代速度較快。嵌入式系統(tǒng)的生命周期與其嵌入的產

品或設備同步,經歷產品導入期、成長期、成熟期和衰退期等各個階段,一般比通用計算機要

長。

6)不易被壟斷

嵌入式系統(tǒng)是將先進的計算機技術、半導體技術和電子技術和各個行業(yè)的具體應用相結合

后的產物,這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創(chuàng)新的知識集

成系統(tǒng)。因此,嵌入式系統(tǒng)不易在市場上形成壟斷。目前,嵌入式系統(tǒng)處于百花齊放、各有所

長、全面發(fā)展的時代,各類嵌入式系統(tǒng)軟硬件差別顯著,其通用性和可移植性都較通用計算機

系統(tǒng)要差。在學習嵌入式系統(tǒng)時要有所側重,然后觸類旁通。

7.常見的嵌入式操作系統(tǒng)有哪幾種?

【答案】

1)pC/OS-H

2)嵌入式Linux

3)Android

4)WindowsCE

8.ARM處理器有什么特點?

【答案】

因為ARM處理器采用RISC結構,所以它具有RISC架構的一些經典特點。

(1)體積小、功耗低、成本低、性能高。

(2)支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件。

(3)大量使用寄存器,指令執(zhí)行速度更快。

(4)大多數數據操作都在寄存器中完成。

(5)尋址方式靈活簡單,執(zhí)行效率高。

(6)內含嵌入式在線仿真器。

9.府述ARM處理器的應用領域。

【答案】

ARM處理器可廣泛應用于以下領域。

(1)為通信、消費電子、成像設備等產品,提供可運行復雜操作系統(tǒng)的開放應用平臺。

(2)在海量存儲、汽車電子、工業(yè)控制和網絡應用等領域,提供實時嵌入式應用。

(3)在軍事、航天等領域,提供寬溫、抗電磁干擾、耐腐蝕的復雜嵌入式應用。

10.什么嵌入式微處理器分類。

【答案】

嵌入式微處理器、嵌入式微控制器、嵌入式DSP、嵌入式SoC

11.Cortex-M系列處理器有哪些特征?

【答案】

Cor(ex-M系列處理器的特征如下:

(1)RISC處理器內核:高性能32位CPU、具有確定性的運算、低延遲3階段管道,可

達l.25DMIPS/MHzo

(2)Thumb-2指令集:16/32位指令的最佳混合、小于8位設備3倍的代碼大小、走性能

沒有負面影響,提供最佳的代碼密度。

(3)低功耗模式:集成的睡眠狀態(tài)支持、多電源域、基于架構的軟件控制。

(4)嵌套矢量中斷控制器(NVIC):低延遲、低抖動中斷響應、不需要匯編編程、以純C

語言編寫中斷服務例程,能完成出色的中斷處理。

(5)工具和RTOS支持:廣泛的第三方工具支持、Cortex微控制器軟件接口標準(CMSIS).

最大限度地增加軟件成果重用。

(6)CoreSight調試和跟蹤:JTAG或2針串行線調試(SWD)連接、支持多處理器、支

持實時跟蹤。此外,Cortcx-M系列處理器還提供了一個可選的內存保護單元(MPU),提供低

成本的調試/追蹤功能和集成的休眠狀態(tài),以增加靈活性。

第2章

1.STM32F407X系列微控制器支持幾種時鐘源?

【答案】

STM32F407X系列微控制器支持3種不同的時鐘源用來驅動系統(tǒng)時鐘(SYSCLK):HSI振蕩

器時鐘;HSE振蕩器時鐘;PLL時鐘。

2.簡要說明HSE時鐘的啟動過程。

【答案】

當使用外部晶體/陶瓷諧振器(HSE晶體)時,4?26MHz外部振蕩器可為系統(tǒng)提供更為精

確的主時鐘o首先配置結構體RCC_OscInitStruct.OscillatorType=

RCC_OSCILLATORTYPE_HSE,選擇時鐘源為HSE,讀取

HAL_RCC_OscConfig(&RCC_OscInitStruct)的返回值,如果返回值為HAL_OK則表示高速外部

振蕩器穩(wěn)定且就緒。在啟動時,直至I]函數_HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY)查

詢到RCC_FLAG_HSERDY參數被硬件置1,時鐘才被移放出來。如果在RCC中斷控制函數

_HAL_RCC_ENABLE_IT(RCC」T_HSERDY)中允許產生中斷,將會產生相應中斷。HSE

晶體可以通過配置結構體RCC_OscInilSlruct.HSEState=RCC_HSE_ON或

RCC_OscInitStruct.HSEState=RCC_HSE_OFF,通過函數

HAL_RCC_OscConfig(&RCC_OscInitStrucl)來啟動和關閉。

3.如果HSE晶體振蕩器失效,哪個時鐘被作為備用時鐘源?

【答案】

如果HSE晶體振蕩器失效,HSI時鐘會被作為備用時鐘源。

4.簡要說明LSI校準的過程。

【答案】

LSI校準的分四步進行:

1)打開TIM5,設置通道4為輸入捕獲模式。

2)設置AHOMAPR的TIM5CH4IREMAP位為1,在內部將LSI連接到TIM5的通道4。

3)通過TIM5的捕獲/比較4通道事件或者中斷來測量LSI時鐘頻率。

4)根據測量結果和期望的通道RTC時間基數和獨立看門狗的超時時間,設置20位預分

頻器

5.當STM32F407X系列處理器采用25MHz的高速外部時鐘源時,通過PLL倍頻后能夠得

到的最高系統(tǒng)頻率是多少?此時AHB、APB1、APB2總線的最高頻率分別是多少?

【答案】

當STM32F407X系列處理器采用25MHz的高速外部時鐘源時,通過PLL倍頻后能夠得到

的最高系統(tǒng)頻率是168MHz,此時AHB總線的最高頻率是168MHz,APB2總線的最高頻率是

168MHz,APB1總線的最高頻率是84MHz。

6.簡要說明在STM32F4()7x上不使用外部晶振時OSC」N和OSC_OUT的接法。

【答案】

對于100腳或144腳的產品,OSC_IN應接地,OSC_OUT應懸空。對于少于100腳的產

品,有2種接法:OSC_IN和OSC_OUT分別通過10KQ電阻接地。此方法可提高EMC性能。

分別重映射OSC」N和OSC.OUT至PDO和PD1,再配置PDO和PD1為推挽輸出并輸出0‘。

此方法可以減小功耗并節(jié)省2個外部電阻。

7.簡要說明在使用HSE時鐘時程序設置時鐘參數的流程。

【答案】

用HSE時鐘,程序設置時鐘參數流程:

1)定義RCC內部/外部振蕩器(HSE、HSI、LSE和LSI)配置結構體

RCC_OscIni(TypeDef結構體;

2)定義RCC系統(tǒng)、AHB和APB總線時鐘配置結構體RCC.ClklnitTypeDef:

3)選擇振蕩器類型為HSE,RCC_OscIni(Struct.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.HSISta(e=RCC_HSI_ON;

7)配置PLL為開啟狀態(tài),RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;

8)酉己置PLL源為HSE,RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_HSE;

9)配置PLL倍頻系數為9,RCC_OscInitStruct.PLL.PLLMUL=RCC_PLL_MUL9;

10)初始化RCC振蕩器,HAL_RCC_OscConfig(&RCC_OscInitStruct);

11)選擇要配置的總線時鐘,RCC_ClkInilSlruct.ClockType=

RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCL

K1|RCC_CLOCKTYPE_PCLK2;

⑵選擇SYSCLK時鐘源為PLLCLK,RCC.ClklnitStruct.SYSCLKSource=

RCC_SYSCLKSOURCE_PLLCLK;

13)配置AHB時鐘分頻系數為1,RCC_ClkInitStruct.AHBCLKDivider=

RCC_SYSCLK_DIV1;

14)配置APB1時鐘分頻系數為2,RCC_CIkInitStruct.APBICLKDivider=

RCC_HCLK_DIV2;

15)配置APB2時鐘分頻系數為1,RCC_ClkInitStruct.APB2CLKDivider=

RCC_HCLK_DIV1;

16)初始化總線時鐘,HAL_RCC_ClockConfig(&RCC_ClkInitStruct,

FLASH_LATENCY_2)o

第3章

l.STM32CubcMX軟件是什么?

【答案】

STM32CubeMX軟件是ST有限公司為STM32系列微控制器快速建立工程,并快速初

始化使用到的外設、GP1O等而設計的,大大縮短了開發(fā)時間。

2.STM32CubeMX軟件的特點是什么?

【答案】

(1)集成了ST有限公司的每一款型號的MCU/MPU的可配置的圖形界面,能夠自動

提示IO沖突并且對于復用10可自動分配。

(2)具有動態(tài)驗證的時鐘樹。

(3)能夠很方便的使用所集成的中間件。

(4)能夠估算MCU/MPU在不同主頻運行下的功耗。

(5)能夠輸出不同編譯器的工程,比如能夠直接生成MDK、EWARM、STM32CubeIDE、

MakeFile等工程。

3.STM32CubeMX軟件的工作區(qū)有哪4個界面?

(1)Pinout&Configuration(引腳與配置)界面,這是對MCU的系統(tǒng)內核、外設、中

間件和引腳進行配置的界面,是主要的工作界面。

(2)ClockConfiguration(時鐘配置)界面,通過圖形化的時鐘樹對MCU的各個時鐘

信號頻率進行配置的界面.

(3)ProjectManager(項目管理)界面,對項目進行各種設置的界面.

(4)Tools(工具)界面,進行功耗計算、DDRSDRAM適用性分析(僅用于STM32Mpi

系列)的操作界面。

第4章

l.STM32CubeIDE軟件是什么?

【答案】

STM32CubeIDE是STM32clibe生態(tài)系統(tǒng)中的一個重要軟件工具,是ST官方免費提供的

STM32MCU/MPU程序開發(fā)IDE軟件。

2.STM3?CiiheIDF有什么特點?

【答案】

STM32CubeIDE就是在TrueSTUDIO基礎上改進和升級得來的,有如下一些特點:

(1)STM32CubeIDE使用的是Eclipse【DE環(huán)境,具有強大的編輯功能,其使用習慣

與TrueSTUDIO相同。

(2)STM32CubcIDE使用的是GNUC/C++編譯器,支持在STM32項目開發(fā)中使用

C++編程。

(3)STM32CubcIDE內部集成了STM32CubeMX,在STM32CubeIDE里就可以進行

MCU圖形化配置和代碼生成,然后在初始代碼基礎上繼續(xù)編程。當然,STM32CubeIDE也

可以和獨立的STM32CubeMX配合使用。

3.STM32CubePrograinmer軟件有什么特色?

(I)可對片內Flash進行擦除或編程以及查看Flash內容。

(2)支持sl9、hex、elf和bin等格式的文件。

(3)支持調試接口或boolloader接口。

①STLINK調試接口(JTAG/SWD)

②UART或USBDFUboolloader接口

(4)支持對外部的存儲器的擦除或編程。

(5)支持STM32芯片的自動編程(擦除、校驗、編程、選項字配置)。

(6)支持對STM32片內OTP區(qū)域的編程。

(7)既支持圖形化界面操作也支持命令行操作。

(8)支持對ST-Link調試器的在線固件升級。

(9)配合STM32TrustedPackageCreatortool實現固件加密操作。

(10)支持Windows,Linux和MacOS多種操作系統(tǒng)。

第5章

1.列舉GPIO的工作模式。

【答案】

(1)輸入浮空模式。

(2)輸入上拉模式。

(3)輸入下拉模式。

(4)模擬功能模式。

(5)具有上拉/下拉功能的開漏輸出模式。

(6)具有上拉/下拉功能的推挽輸出模式。

(7)具有上拉/下拉功能的復用功能推挽模式。

(8)具有上拉/下拉功能的復用功能開漏模式。

2.STM32F407系列微控制器每個GPIO端口有「16個—引腳。

3.當引腳被配置為模擬功能模式時,上拉/下拉功能應被一禁止_。

4.當引腳被配置為輸出模式,而輸出類型被配置為開漏時,引腳要輸出高電平,需要

使能引腳上拉功能,

5.控制引腳輸出電平時,需要操作-ODR寄存器:獲取引腳狀態(tài)需要操作

一IDR寄存器。

6.在stm32f407的庫函數中,使能GPIOA時鐘,使用的庫函數是

HALRCCGPIOACLKENABLE。。

7.在stm32f407的庫函數中,初始化GPIO功能,使用的庫函數是_void

HAL_GPlO」nit(GPIO_TypeDcf*GPIOx,GPIO」nitTypcDcf*GPIO」nit)___。

8.當要同時初始化某個GPIO的1號、2號引腳,賦給GPIO」nitTypcDcf結構體類型

成員GPIO_Pin的值是_GPIO_PIN_1|GPIO_PIN_2。

9.在stm32f407的庫函數中,讀取某個特定GP1O引腳狀態(tài),使用的庫函數是

GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uinll6_tGPIO_Pin)。

10.在sim32f407的庫函數中,設定某些特定GPIO引腳輸出狀態(tài),使用的庫函數是void

HAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO.Pin,GPIO_PinStatePinState)o

H.結合電路說明推挽輸出和開漏輸出的區(qū)別。

【答案】在推挽輸出下,輸出電路中有PMOS和NMOS管組成的推挽結構電路,當ODR

寄存器中對應位寫,1'時,NMOS管截止,PMOS管導通,引腳輸出高電平。當ODR寄存器

中對應位寫,0'時,NMOS管導通,PMOS管截止,引腳輸出低電平。

-開

讀灶

注TTL施密特%V

人觸發(fā)器

開/笑一

建保護

拉25

臉人驅動耨二極管

我Hi上

0r-KJPlC

宗輸出強動器-引碑

開/關

冢拉K保護

-----C|FP-MOS

三4:極管

讀E籌輸出控制v

]FN-MOS?亡

V*推挽

在開漏輸出下,輸出電路中有只有NMOS管,當ODR寄存器中對應位寫〒時,NMOS

管截止,這是引腳處于浮空狀態(tài),必須通過上拉電阻使引腳輸出高電平。當ODR寄存器中

對應位寫G時,NMOS管導通,PMOS管截止,引腳輸出低電平。

12.當把引腳配置為模擬輸入模式時,那么它是否還具備耐5V功能?

【答案】

不具備耐5V功能。

此時,引腳輸入通道和數字電路隔離,處于模擬電路狀態(tài)

13.簡述片上外設使用初始化流程。

【答案】

(I)使能GPIO的時鐘(非常重要),涉及以下文件。

(2)設置對應于片上外設使用的GPIO工作模式。

(3)如果使用復用功能,需要單獨設置每一個GPIO引腳的復用功能。

(4)在應用程序中讀取引腳狀態(tài)、控制引腳輸出狀態(tài)或使用復用功能完成特定功能。

14.編寫程序,將GPIOD的1號、3號、5號、7號、9號引腳配置為推挽輸出模式,

速度為50MHz,將0、2號、4號、6號、8號引腳配置為上拉輸入模式。

【答案】

GPIO_InitTypeDefGPIO_InitStruct={0};

_HAL_RCC_GPIOD_CLK_ENABLE();

GPlOJnitStruct.Pin=GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4

|GPIO_PIN_6|GPIO_PIN_8;

GPIO_InitSlruct.Mc<le=GPIO_MODE」NPUT;

GPIOJnitStruct.Pull=GPIO_PULLUP;

HAL_GPIOJnit(GPIOD.&GPIOJnitStruct);

GPlOJnitStruct.Pin=GPIO_PIN_9|GPIO_PIN_1|GPIO_P1N_3|GPIO_PIN_5

|GPIO_PIN_7;

GPIO」nitStruct.Mcde=GPIO_MODE_OUTPUT_PP;

GPIOJnitStruct.Pull=GPIO.PULLUP;

GPIOJnitSlruct.Speed=GPIO_SPEED_FREQ_HIGH;

HAL_GPIO」nil(GPIOD,&GPIOJnitSlruc();

15.編寫程序,將GPIOD的1號、5號、7號引腳輸出高電平,3號、9號引腳輸出低

電平,并將引腳2號、6號、8號上的狀態(tài)讀到處理器中。

【答案】

unsignedshortinta,b,c;

HAL_GPIO_WritePin(GPIOD,GPIO_PIN_I|GPIO_PIN_5|GPIO_PIN_7,

GPIO_PIN_SET);

HAL_GPIOWritePiniGPIOD,GPIO_PIN_3|GPIO_PIN_9,GPIO_PIN_RESET);

a=HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_2);

b=HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_6);

c=HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_8);

16.有獨立按鍵電路,連接在STM32F407ZGT6微控制器的GPIOE的5號引腳,要求

在每次按鍵后將連接GPIOB的2號引腳上的LED燈反轉,電路如圖所示。

+3.3V

〈52LED3

e

PB2

--------IZZJ-

330c

請編寫程序實現按鍵動作的檢測,編寫以下程序。

(1)主程序。

(2)連接按鍵引腳和LED引腳的初始化程序。

(3)按鍵檢測程序。

假設已有延時函數voiddelay_ms(ul6nms);,此函數可直接調用。

【答案】

#dcfineKEY_ONI

#defineKEY_OFF0

(1)

intmain(void)

(

delay_init(168);〃初始化延時函數

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)

voidKcy_GP10_Config(void)

GPIO_Ini(TypeDefGPIO_InitStruct={0};

_HAL_RCC_GPIOE_CLK_ENABLE();

GPIO」nitStruct.Pin=GPIO_PIN_5;

GPIOJnitStruct.Mode=GPIO_MODE」NPUT;

GPIO_InitStruct.Pull=GPIO_PULLUP;

HAL_GPIO_Init(GPIOE,&GPIO_InitStruct);

)

voidLED_GPIO_Config(void)

(

GPIO_InitTypeDefGPIO_InitStruct={0};

_HAL_RCC_GPIOB_CLK_ENABLE();

GPIOJnitS:ruct.Pin=GPIO_PIN_2;

GPlOJnitS:ruct.Modc=GPIO_MODE_OUTPUT_PP;

GPIOJnitSzruct.Pull=GPIO_PULLUP;

GPIOJnitS:ruct.Speed=GPIO_SPEED_FREQ_LOW;

HAL_GPIOJnit(GPlOB.&GPIOJnilStruct);

)

(3)

uint8_tKey_Scan(GPIO_TypeDef*GPIOx,uintl6_tGPIO.Pin)

(

if(HAL_GPIO_ReadPin(GPIOx,GPIO_Pin)==KEY_ON)

(

delay_ms(100);〃去抖動

if(HAL_GPIO_ReadPin(GPIOx,GPIO_Pin)==KEY_ON)

returnKEY_ON;

else

returnKEY_OFF:

)

else

returnKEY_OFF;

17.有矩陣按鍵,其電路如圖所示。

(I)矩陣按鍵掃描原理和流程圖。

(2)編寫程序實現矩陣按鍵控制,按鍵SI?S4分別對應數字1-4(引腳初始化程序和

按鍵控制程序)。

【答案】

(I)

①將列線設置為輸出模式(圖中PBO和PBI),并分別在PBO和PB1上輸出低電平。

行線設置為輸入模式(圖中PB2和PB3)。都使能上拉。

②讀取PB2和PB3狀態(tài),判斷是否有按鍵按下。

(判斷原則:PB2和PB3都是高電平時,沒有按鍵按下。PB2和PB3有任何一

個為低電平是,有按鍵按下。

判斷原理:在沒有按鍵按下去的時候,由于上拉電阻的存在,PB2和PB3都是

高電平,讀取狀態(tài)時,PB2=1,PB3=1。如果有按跡按下去的話,摸一個行線和列線

連接在一起。由于PBO和PBI都為低電平,因此連接在一起的行線會被列線下拉到低

電平。這時,在讀取PB2和PB3狀態(tài)時,就不會全是高電平。

例如:當按下S1時,PB1和PB2連在一起,PB2被

溫馨提示

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

最新文檔

評論

0/150

提交評論