版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《STM32Cube嵌入式系統(tǒng)應(yīng)用》習(xí)題
第1章
1.嵌入式系統(tǒng)處理器有哪幾種?如何選擇?
2.簡(jiǎn)述馮?諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)的區(qū)別。
3.嵌入式系統(tǒng)與計(jì)算機(jī)系統(tǒng)有什么區(qū)別?
4.什么是嵌入式系統(tǒng)?
5.嵌入式系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)的異同點(diǎn)?
6.嵌入式系統(tǒng)的特點(diǎn)主要有哪些?
7.常見(jiàn)的嵌入式操作系統(tǒng)有哪幾種?
8.ARM處理器有什么特點(diǎn)?
9.簡(jiǎn)述ARM處理器的應(yīng)用領(lǐng)域。
10.什么嵌入式微處理器分類(lèi)。
li.Cortex-M系列處理器有哪些特征?
第2章
1.STM32F407X系列微控制器支持幾種時(shí)鐘源?
2.簡(jiǎn)要說(shuō)明HSE時(shí)鐘的啟動(dòng)過(guò)程。
3.如果HSE晶體振蕩器失效,哪個(gè)時(shí)鐘被作為備用時(shí)鐘源?
4.簡(jiǎn)要說(shuō)明LSI校準(zhǔn)的過(guò)程。
5.當(dāng)STM32F407X系列處理器采用25MHz的高速外部時(shí)鐘源時(shí),通過(guò)PLL倍頻后能夠得
到的最高系統(tǒng)頻率是多少?此時(shí)AHB、APB1、APB2總線的最高頻率分別是多少?
6.簡(jiǎn)要說(shuō)明在STM32F407X上不使用外部晶振時(shí)OSC」N和OSCJ3UT的接法。
7.簡(jiǎn)要說(shuō)明在使用HSE時(shí)鐘時(shí)程序設(shè)置時(shí)鐘參數(shù)的流程。
第3章
1.STM32CubcMX軟件是什么?
2.STM32CubeMX軟件的特點(diǎn)是什么?
3.STM32CubcMX軟件的工作區(qū)有哪4個(gè)界面?
第4章
l.STM32CubeIDE軟件是什么?
2.STM32CubeIDE有什么特點(diǎn)?
3.STM32CubeProgrammer軟件有什么特色?
第5章
1.列舉GPIO的工作模式。
2.STM32F407系列微控制器每個(gè)GPIO端口有一引腳。
3.當(dāng)引腳被配置為模擬功能模式時(shí),上拉/下拉功能應(yīng)被
4.當(dāng)引腳被配置為輸出模式,而輸出類(lèi)型被配置為開(kāi)漏時(shí),引腳要輸出高電平,需要
5.控制引腳輸出電平時(shí),需要操作—寄存器;獲取引腳狀態(tài)需要操作—寄存器。
6.在STM32f407的庫(kù)函數(shù)中,使能GPIOA時(shí)鐘,使用的庫(kù)函數(shù)是___。
7.在STM32f407的庫(kù)函數(shù)中,初始化GPIO功能,使用的庫(kù)函數(shù)是一。
8.當(dāng)要同時(shí)初始化某個(gè)GPIO的1號(hào)、2號(hào)引腳,賦給GPIO」nitTypeDef結(jié)構(gòu)體類(lèi)型
成員GPIO_Pin的值是。
9.在STM32f407的庫(kù)函數(shù)中,讀取某個(gè)特定GPIO引腳狀態(tài),使用的庫(kù)函數(shù)是。
10.在STM32f407的庫(kù)函數(shù)中,設(shè)定某些特定GPIO引腳輸出狀態(tài),使用的庫(kù)函數(shù)
11.結(jié)合電路說(shuō)明推挽輸出和開(kāi)漏輸出的區(qū)別。
12.當(dāng)把引腳配置為模擬輸入模式時(shí),那么它是否還具備耐5V功能?
13.簡(jiǎn)述片上外設(shè)使用初始化流程。
14.編寫(xiě)程序,將GPIOD的1號(hào)、3號(hào)、5號(hào)、7號(hào)、9號(hào)引腳配置為推挽輸出模式,
速度為50MHz,將0、2號(hào)、4號(hào)、6號(hào)、8號(hào)引腳配置為上拉輸入模式。
15.編寫(xiě)程序,將GPIOD的1號(hào)、5號(hào)、7號(hào)引腳輸出高電平,3號(hào)、9號(hào)引腳輸出低
電平,并將引腳2號(hào)、6號(hào)、8號(hào)上的狀態(tài)讀到處理器中。
16.有獨(dú)立按鍵電路,連接在STM32F407ZGT6微控制器的GPIOE的5號(hào)引腳,要求
在每次按鍵后將連接GPIOB的2號(hào)引腳上的LED燈反轉(zhuǎn),電路如圖所示。
+3.3V
〈\ZLED3
CI
PB2
請(qǐng)編寫(xiě)程序?qū)崿F(xiàn)按鍵動(dòng)作的檢測(cè),編寫(xiě)以下程序。
(1)主程序。
(2)連接按鍵引腳和LED引腳的初始化程序。
(3)按鍵檢測(cè)程序。
假設(shè)已有延時(shí)函數(shù)voiddelay_ms(u!6nms);,此函數(shù)可直接調(diào)用。
17.有矩陣按鍵,其電路如圖所示。
(1)矩陣按鍵掃描原理和流程圖。
(2)編寫(xiě)程序?qū)崿F(xiàn)矩陣按鍵控制,按鍵S1?S4分另!對(duì)應(yīng)數(shù)字—4(引腳初始化程序和
按鍵控制程序)。
第6章
1.簡(jiǎn)述STM32F407微控制器中的NVIC中斷管理方法。
2.中斷優(yōu)先級(jí)編號(hào)越小,則其優(yōu)先級(jí)越—o
3.中斷搶占優(yōu)先級(jí)高的是否可以搶占優(yōu)先級(jí)低的中斷流程?
4.響應(yīng)搶占優(yōu)先級(jí)高的是否可以搶占優(yōu)先級(jí)低的中斷流程?o
5.兩個(gè)中斷搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)都相同,同時(shí)向內(nèi)核申請(qǐng)中斷,怎么響應(yīng)中斷?
6.假定設(shè)置中斷優(yōu)先級(jí)組為I,然后設(shè)置:中斷3(RTC中斷)的搶占優(yōu)先級(jí)為1,響
應(yīng)優(yōu)先級(jí)為1;中斷6(外部中斷0)的搶占優(yōu)先級(jí)為3,響應(yīng)優(yōu)先級(jí)為0:中斷7(外部中
斷1)的搶占優(yōu)先級(jí)為1,響應(yīng)優(yōu)先級(jí)為6。那么,這3個(gè)中斷的優(yōu)先級(jí)順序?yàn)椋ㄓ筛叩?/p>
底):o
7.voidHAL_NVIC_SetPriority(IRQn_TypeIRQn,uint32_tPreemptPriority,uint32_t
SubPriority)函數(shù)用于設(shè)置_____。
8.voidHAL_NVIC_EnablcIRQ(IRQn_TypcIRQn)函數(shù)用于。
9.voidHAL_NVIC_SetPriorityGrouping(uin(32_tPriorityGroup)函數(shù)用來(lái)配置_____。
10.在頭文件STM32f4xx.h中定義的中斷編號(hào),是以枚舉類(lèi)型定義的。請(qǐng)問(wèn)外部中斷0
的編號(hào)是。
11.當(dāng)中斷優(yōu)先級(jí)組設(shè)置為2組時(shí),搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)可以分別設(shè)置為哪些優(yōu)先
級(jí)?
12.編寫(xiě)NVIC中斷初始化程序?qū)崿F(xiàn)如下功能。
(1)設(shè)置中斷優(yōu)先級(jí)組為2組。
(2)設(shè)置外部中斷2的搶占優(yōu)先級(jí)為0,響應(yīng)優(yōu)先級(jí)為2。
(3)設(shè)置定時(shí)器2中斷的搶占優(yōu)先級(jí)為2,響應(yīng)優(yōu)先級(jí)為1。
(4)設(shè)置USART2的中斷搶占優(yōu)先級(jí)為3,響應(yīng)優(yōu)先級(jí)為3。
并說(shuō)明當(dāng)同時(shí)出現(xiàn)以上3個(gè)中斷請(qǐng)求時(shí),中斷服務(wù)程序執(zhí)行的順序。
13.外部中斷的中斷請(qǐng)求信號(hào)可以是控制器外部產(chǎn)生由GPIO引腳引入的,也可以是由
控制器內(nèi)部一些片上外設(shè)產(chǎn)生的。這一說(shuō)法是否正確?。
14.每個(gè)GPIO引腳都可以作為外部中斷信號(hào)輸入引腳,GPIO引腳編號(hào)相同的映射到
同一個(gè)EXTI線,那么GPIOA的0號(hào)引腳映射到EXTI線,GPIOD的0號(hào)引腳映射
到EXTI線,GPIOC的5號(hào)引腳映射到EXTI線,GPIOG的10號(hào)引腳映射
至I]EXTI線o
15.外部中斷信號(hào)輸入的觸發(fā)信號(hào)形式可以是_、_、_、。
16.每個(gè)外部中斷在中斷向量表中,是否都獨(dú)立占用一個(gè)位置?_不是一
17.外部中斷共用一個(gè)中斷向量和外部中斷一共用一個(gè)中斷向量。
18.外部中斷的中斷0在庫(kù)函數(shù)啟動(dòng)文佇中定義的默認(rèn)中斷函數(shù)名是
_EXTI0_IRQHandlcr_o
19.函數(shù)HAL_EXTI_SctConfigLinc(&EXTIO_Ha?dlcStruct,&EXTI0_ConfigStructurc)
有什么功能?
20.函數(shù)HAL_NVIC_SelPriori【y(EXTIO」RQn,0,0)有什么功能?
21.應(yīng)用外部中斷,需要先使能GPIO端口的時(shí)鐘和時(shí)鐘。
22.試述初始化外部中斷的步驟。
23.初始化外部中斷1:將GPIOA的1號(hào)引腳作為輸入引腳,中斷模式,上升沿觸發(fā),
中斷優(yōu)先級(jí)組為3組,搶占優(yōu)先級(jí)為3,響應(yīng)優(yōu)先級(jí)為1,并使能中斷。.
24.外部中斷被掛起后,不能硬件清除,需要在相應(yīng)的中斷服務(wù)程序中將掛起標(biāo)志清除,
使用的函數(shù)是
25.根據(jù)下圖所示,編寫(xiě)程序以完成外部中斷初始化,中斷輸入引腳為PE5,上升沿檢
測(cè)方式。
3.3V+3.3\
N\ZLED3
4ZZF
33()。
GND
15.編寫(xiě)14題的外部中斷的服務(wù)程序,完成LED燈(PB2)的開(kāi)關(guān)控制。
第7章
1.STM32F407定時(shí)器的計(jì)數(shù)方式有、_、—。
2.STM32F407計(jì)數(shù)寄存器是,自動(dòng)重載寄存器是—,預(yù)分頻寄存器是
3.若TIMx_PSC=4,則時(shí)鐘源的預(yù)分頻系數(shù)是o
4.若TIM.jARR=89,則一次計(jì)數(shù)溢出的計(jì)數(shù)次數(shù)是。
5.什么是PWM信號(hào)?什么是占空比?請(qǐng)繪圖舉例。
6.遞增計(jì)數(shù)模式是從0計(jì)數(shù)到的值,然后產(chǎn)生一次—溢出事件一°
7.遞減計(jì)數(shù)模式是從_ARR一計(jì)數(shù)到0的值,然后產(chǎn)生一次向下溢出。中心對(duì)齊計(jì)數(shù)模
式是先以遞增計(jì)數(shù)模式,從0計(jì)數(shù)到,然后產(chǎn)生一次向上溢出,再在從計(jì)數(shù)
到,然后產(chǎn)生一次向下溢出。
8.當(dāng)使能了比較輸出功能,輸出PWM波,在邊沿比較模式下,寄存器控制
PWM周期,寄存器控制占空比。
9.當(dāng)使能了比較輸出功能,輸出PWM波,在邊沿比較模式下,當(dāng)TIMAICNT計(jì)數(shù)值
在范圍時(shí),輸出有效電平;在范圍時(shí),輸出反向電平。
10.定時(shí)器TIM2掛載在APB1總線上,假設(shè)PCLKl=45MHz,選擇內(nèi)部時(shí)鐘作為計(jì)數(shù)時(shí)
鐘源(默認(rèn)情況下這一時(shí)鐘源頻率=2xPCLKI),TIM2_PSC=8,TIM2_ARR=49,則計(jì)數(shù)溢出一
次,時(shí)間為多長(zhǎng)?怎么計(jì)算?
11.編程序,使用TIM1產(chǎn)生1s的定時(shí)。
12.編程序,使用TIM3產(chǎn)生PWM波。
13.編程序,使用TIM2檢測(cè)外部一未知時(shí)鐘的頻率。
第8章
1.串行異步通信數(shù)據(jù)格式是什么?用圖說(shuō)明。
2.已知異步通信接I」的幀格式由1個(gè)起始位,8個(gè)數(shù)據(jù)位,無(wú)奇偶校驗(yàn)位和1位停止位組成。
當(dāng)該接口每分鐘傳送9600個(gè)字符時(shí),試計(jì)算其波特率。
3.簡(jiǎn)要說(shuō)明USART的工作原理。
4.簡(jiǎn)要說(shuō)明USART數(shù)據(jù)接收配置步驟
5.當(dāng)使用USART模塊進(jìn)行全雙工異步通信時(shí),需要做哪些配置?
6.編程寫(xiě)出USART的初始化程序。
7.分別說(shuō)明USART在發(fā)送期間和接收期間有幾種中斷事件?
8.編程序配置STM32F407微控制器的USART2為以下功能:波特率=9600bps,8位有
效數(shù)據(jù)位、無(wú)奇偶校驗(yàn)、無(wú)硬件流控、使能接收和發(fā)送、使能接收中斷。
9.編寫(xiě)USART2接收中斷的程序。
10.編寫(xiě)USART2查詢(xún)式發(fā)送數(shù)據(jù)的程序。
11.怎么通過(guò)USART接收連續(xù)、不定長(zhǎng)的數(shù)據(jù)流?
第9章
1.簡(jiǎn)要說(shuō)明SPI總線的工作模式種類(lèi)和特點(diǎn)。
2.簡(jiǎn)要說(shuō)明SPI硬件弓腳的作用?
3.分別寫(xiě)出SPI主、從模式的配置步驟。
4.要監(jiān)控SPI總線的狀態(tài),有幾個(gè)狀態(tài)標(biāo)患可以通述應(yīng)用程序使用?簡(jiǎn)單說(shuō)明各標(biāo)志位的
作用。
5.編寫(xiě)程序配置SPI總線初始化。
6.SPI共有幾個(gè)中斷源?
第10章
1.簡(jiǎn)要說(shuō)明12c的結(jié)構(gòu)與工作原理。
2.簡(jiǎn)要說(shuō)明12c總線的組成以及使用場(chǎng)合。
3.簡(jiǎn)要說(shuō)明12c總線的主要特點(diǎn)和工作模式。
4.簡(jiǎn)要說(shuō)明12c總線控制程序的編寫(xiě)。
5.寫(xiě)出在I2C主模式時(shí)的操作順序。
6.寫(xiě)出利用DMA發(fā)送I2C數(shù)據(jù)時(shí)需要做的配置步驟。
7.簡(jiǎn)要說(shuō)明I2C的中斷事件有哪些?
第H章
1.STM32F407X系列芯片上集成了一個(gè)逐次逼近型模擬數(shù)字轉(zhuǎn)換器,請(qǐng)簡(jiǎn)要敘述它的轉(zhuǎn)
換過(guò)程,并指出使用該A/D轉(zhuǎn)換器的注意事項(xiàng)。
2.寫(xiě)出STM32F407ZGT6處理器的ADC模塊的所有可配置模式
3.簡(jiǎn)要敘述STM32F407X系列芯片所集成的A/D模塊的特征。
4.簡(jiǎn)要敘述ADC模塊的自校準(zhǔn)模式及其意義。
5.ADC的分辨率怎么定義?ADC的分辨率和精度有什么區(qū)別?
6.分辨率為12位,參考電壓為3.3V的ADC,轉(zhuǎn)換一個(gè)模擬信號(hào)得到的結(jié)果是0x523,
請(qǐng)問(wèn)這一模擬信號(hào)的電壓是多少?
7.STM32F407微控制器的ADC有哪些觸發(fā)方式(轉(zhuǎn)換啟動(dòng)方式)?
8.STM32F407微控制器的ADC的規(guī)則組和注入組是什么意思?
9.請(qǐng)說(shuō)明單次、連蝮、掃描的含義。
10.怎么使能ADC?怎么啟動(dòng)一次規(guī)則組ADC轉(zhuǎn)換?
11.使用GP1O引腳作為ADC的模擬信號(hào)輸入通道.這一GPIO引腳需要怎么初始化?
以ADC1的AIN5通道為例。
12.編程序配置STM32F407微控制器的ADC1為以下功能.
工作在獨(dú)立模式,在規(guī)則組中轉(zhuǎn)換通道3(PA3),使能轉(zhuǎn)換結(jié)束中斷,使能ADC1,并
軟件啟動(dòng)ADC1的轉(zhuǎn)換。
13.編寫(xiě)第12題的中斷服務(wù)程序,在中斷服務(wù)程序中獲取轉(zhuǎn)換結(jié)果,并將其轉(zhuǎn)換成實(shí)
際電壓值(ADC的參考電壓為3.3V)。
14.ADC1使用的是DMA的哪個(gè)數(shù)據(jù)流?哪個(gè)通道?
15.請(qǐng)思考,怎么使用ADC1掃描轉(zhuǎn)換規(guī)則組通道I、3、5、2、4(注意轉(zhuǎn)換的順序),
并編寫(xiě)實(shí)現(xiàn)此功能的程序。
第12章
1.簡(jiǎn)述DMA工作原理。
2.說(shuō)明DMA控制器的三種數(shù)據(jù)傳輸方向。
3.實(shí)現(xiàn)存儲(chǔ)器到存儲(chǔ)器的DMA數(shù)據(jù)傳輸,使用哪一個(gè)DMA數(shù)據(jù)流、通道?
4.DMA傳輸使用的數(shù)據(jù)格式(寬度)有哪些?
5.實(shí)現(xiàn)DMA數(shù)據(jù)傳輸?shù)娜齻€(gè)基本要素是什么?
6.什么是DMA突發(fā)傳輸?
7.USART1的發(fā)送功能(TX)和接收功能(RX),分別使用的是哪一個(gè)DMA的哪一
個(gè)數(shù)據(jù)流的哪一個(gè)通道?
8.在使用DMA時(shí),都需要做哪些配置?
9.使用DMA,編寫(xiě)程序?qū)崿F(xiàn)存儲(chǔ)器到存儲(chǔ)器的DMA數(shù)據(jù)傳輸,數(shù)據(jù)源和目的地自定。
《STM32Cube嵌入式系統(tǒng)應(yīng)用》HAL庫(kù)習(xí)題答案
第1章
1.嵌入式系統(tǒng)處理器有哪幾種?如何選擇?
【答案】
嵌入式處理器是嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運(yùn)行的硬件單元。分為以下幾
種:
(1)嵌入式微處理器
一般用于中高端嵌入式系統(tǒng)應(yīng)用場(chǎng)景,可跑中大型操作系統(tǒng)。
(2)嵌入式微控制器
一般用于低端嵌入式系統(tǒng)應(yīng)用場(chǎng)景,可跑小型操作系統(tǒng)或裸機(jī)運(yùn)行程序。
(3)嵌入式DSP
?般用于數(shù)據(jù)運(yùn)算集中的應(yīng)用場(chǎng)景。
(4)嵌入式SoC
在此主要指基于FPGA的SOPC系統(tǒng),處理器和FPGA系統(tǒng)混合集成。一般應(yīng)用于通
信、數(shù)據(jù)中心等對(duì)數(shù)據(jù)處理實(shí)時(shí)性有要求的場(chǎng)景。
嵌入式系統(tǒng)處理器的選擇主要根據(jù)應(yīng)用場(chǎng)景決定,
2.簡(jiǎn)述馮?諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)的區(qū)別。
【答案】
1)馮?諾依曼結(jié)構(gòu)
1964年,馮?諾依曼簡(jiǎn)化了計(jì)算機(jī)的結(jié)構(gòu),提出了“存儲(chǔ)程序''的思想,大大提高了計(jì)算機(jī)的
速度。“存儲(chǔ)程序”思想可以簡(jiǎn)化概括為3點(diǎn):
(1)計(jì)算機(jī)包括運(yùn)算器、控制器、存儲(chǔ)器、輸入/輸出設(shè)備。
(2)計(jì)算機(jī)內(nèi)部應(yīng)采JU二進(jìn)制來(lái)表示指令和數(shù)據(jù)。
(3)將編寫(xiě)好的程序和數(shù)據(jù)保存到存儲(chǔ)器,計(jì)算機(jī)自動(dòng)地逐條取出指令和數(shù)據(jù)進(jìn)行分析、
處理和執(zhí)行。
在馮?諾依曼結(jié)構(gòu)中,計(jì)算機(jī)系統(tǒng)由一個(gè)中央處理單元(CPU)和一個(gè)存儲(chǔ)器組成,數(shù)據(jù)和
指令都存儲(chǔ)在存儲(chǔ)器中,程序指令和數(shù)據(jù)不加區(qū)分,均采用數(shù)據(jù)總線進(jìn)行傳輸,因此,數(shù)據(jù)訪
間和指令存取不能同時(shí)在總線上傳輸。CPU可以根據(jù)所給的地址對(duì)存儲(chǔ)器進(jìn)行讀或?qū)?。程序?/p>
令和數(shù)據(jù)的寬度相同。
2)哈佛體系結(jié)構(gòu)
在哈佛體系結(jié)構(gòu)中,數(shù)據(jù)和程序使用各自獨(dú)立的存儲(chǔ)器。程序計(jì)數(shù)器PC只指向程序存儲(chǔ)
器而不指向數(shù)據(jù)存儲(chǔ)器,這樣做的后果是很難在哈佛體系結(jié)構(gòu)的計(jì)算機(jī)上編寫(xiě)出一個(gè)自修改的
程序(有時(shí)稱(chēng)為在應(yīng)用可編程,InApplicationProgramming,IAP)e哈佛體系結(jié)構(gòu)具有以卜優(yōu)點(diǎn):
1)獨(dú)立的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器為數(shù)字信號(hào)處理提供了較高的性能。
2)指令和數(shù)據(jù)可以有不同的數(shù)據(jù)寬度,具有較高的效率。
3.嵌入式系統(tǒng)與計(jì)算鞏系統(tǒng)有什么區(qū)別?
【答案】
通用計(jì)算機(jī)系統(tǒng)的技術(shù)要求是高速、海量的數(shù)值計(jì)算,其技術(shù)發(fā)展方向是總線速度的無(wú)限
提升、存儲(chǔ)容量的無(wú)限擴(kuò)大;而嵌入式計(jì)算機(jī)系統(tǒng)的技術(shù)要求則是智能化控制,技術(shù)發(fā)展方向
是與對(duì)象系統(tǒng)密切相關(guān)的潛入性能、控制能力與控制的可靠性不斷提高。
4.什么是嵌入式系統(tǒng)?
【答案】
嵌入式系統(tǒng)是以應(yīng)用為核心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、
可靠性、安全性、成本、體積、重量、功耗、環(huán)境等方面有嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。
5.嵌入式系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)的異同點(diǎn)?
【答案】
嵌入式系統(tǒng)和通用計(jì)算機(jī)系統(tǒng)的共同點(diǎn)
嵌入式系統(tǒng)和通用計(jì)算機(jī)系統(tǒng)都屬于計(jì)算機(jī)系統(tǒng),從系統(tǒng)組成上講,它們都是由硬件和軟
件構(gòu)成的;工作原理是相同的,都是存儲(chǔ)程序機(jī)制。從硬件上看,嵌入式系統(tǒng)和通用計(jì)算機(jī)系
統(tǒng)都是由CPU、存儲(chǔ)器、I/O接口和中斷系統(tǒng)等部件組成;從軟件上看,嵌入式系統(tǒng)軟件和通
用計(jì)算機(jī)軟件都可以劃分為系統(tǒng)軟件和應(yīng)用軟件兩類(lèi)。
作為計(jì)算機(jī)系統(tǒng)的一個(gè)新興的分支,嵌入式系統(tǒng)與人們熟悉和常用的通用計(jì)算機(jī)系統(tǒng)相比
又具有以下不同點(diǎn)。
1)形態(tài)。通用計(jì)算機(jī)系統(tǒng)具有基本相同的外形(如主機(jī)、顯示器、鼠標(biāo)和鍵盤(pán)等)并且獨(dú)
立存在;而嵌入式系統(tǒng)通常隱藏在具體某個(gè)產(chǎn)品或設(shè)備(稱(chēng)為宿主對(duì)象,如空調(diào)、洗衣機(jī)、數(shù)
字機(jī)頂盒等)中,它的形態(tài)隨著產(chǎn)品或設(shè)備的不同而不同.
2)功能。通用計(jì)算機(jī)系統(tǒng)一般具有通用而復(fù)雜的功能,任意一臺(tái)通用計(jì)算機(jī)都具有文檔編
輯、影音播放、娛樂(lè)游戲、網(wǎng)上購(gòu)物和通信聊天等通用功能;而嵌入式系統(tǒng)嵌入在某個(gè)宿主對(duì)
象中。功能由宿主對(duì)象決定,具有專(zhuān)用性,通常是為某個(gè)應(yīng)用量身定做的。
3)功耗。目前,通用計(jì)算機(jī)系統(tǒng)的功耗一般為200W左右;而嵌入式系統(tǒng)的宿主對(duì)象通常
是小型應(yīng)用系統(tǒng),如手機(jī)、MP3和智能手環(huán)等,這些設(shè)備不可能配置容量較大的電源,因此,
低功耗一直是嵌入式系統(tǒng)追求的目標(biāo),如日常生活中使用的智能手機(jī),其待機(jī)功率100?
200mW,即使在通話時(shí)功率也只有4?5W。
4)資源。通用計(jì)算機(jī)系統(tǒng)通常擁有大而全的資源(如鼠標(biāo)、鍵盤(pán)、硬盤(pán)、內(nèi)存條和顯示器
等):而嵌入式系統(tǒng)受限于嵌入的宿主對(duì)象(如手機(jī)、MP3和智能手環(huán)等),通常要求小型化和
低功耗,其軟硬件資源受到嚴(yán)格的限制。
5)價(jià)值。通用計(jì)算機(jī)系統(tǒng)的價(jià)值體現(xiàn)在“計(jì)算”和“存儲(chǔ)”上,計(jì)算能力(處理器的字長(zhǎng)和主
頻等)和存儲(chǔ)能力(內(nèi)存和硬盤(pán)的大小和讀取速度等)是通用計(jì)算機(jī)的通用評(píng)價(jià)指標(biāo);而嵌入
式系統(tǒng)往往嵌入到某個(gè)設(shè)備和產(chǎn)品中,其價(jià)值一般不取決于其內(nèi)嵌的處理^的性能,而體現(xiàn)在
它所嵌入和控制的設(shè)備。如一臺(tái)智能洗衣機(jī)往往用洗凈比、洗滌容量和脫水轉(zhuǎn)速等來(lái)衡量,而
不以其內(nèi)嵌的微控制器的運(yùn)算速度和存儲(chǔ)容量等來(lái)衡量。
6.嵌入式系統(tǒng)的特,點(diǎn)主要有哪些?
【答案】
通過(guò)嵌入式系統(tǒng)的定義和嵌入式系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)的比較,可以看出嵌入式系統(tǒng)具有
以下特點(diǎn)。
1)專(zhuān)用性強(qiáng)
2)可裁剪性
受限于體積、功耗和成本等因素,嵌入式系統(tǒng)的硬件和軟件必須高效率地設(shè)計(jì),根據(jù)實(shí)際
應(yīng)用需求量體裁衣,去除冗余,從而使系統(tǒng)在滿(mǎn)足應(yīng)用要求的前提下達(dá)到最精簡(jiǎn)的配置。
3)實(shí)時(shí)性好
所謂實(shí)時(shí)性是指系統(tǒng)能夠及時(shí)(在限定時(shí)間內(nèi))處理外部事件。大多數(shù)實(shí)時(shí)系統(tǒng)都是嵌入
式系統(tǒng),而嵌入式系統(tǒng)多數(shù)也有實(shí)時(shí)性的要求,例如,用戶(hù)將銀行卡插入ATM機(jī)插卡LI,ATM
機(jī)控制系統(tǒng)必須立即啟動(dòng)讀卡程序。
4)可靠性高
很多嵌入式系統(tǒng)必須一年365天、每天24小時(shí)持續(xù)工作,甚至在極端環(huán)境下正常運(yùn)行。大
多數(shù)嵌入式系統(tǒng)都具有可靠性機(jī)制,例如,硬件的看門(mén)狗定時(shí)器、軟件的內(nèi)存保護(hù)和重啟機(jī)制
等,以保證嵌入式系統(tǒng)在出現(xiàn)問(wèn)題時(shí)能夠重新啟動(dòng),保障系統(tǒng)的健壯性。
5)生命周期長(zhǎng)
遵從于摩爾定律,通用計(jì)算機(jī)的更新?lián)Q代速度較快。嵌入式系統(tǒng)的生命周期與其嵌入的產(chǎn)
品或設(shè)備同步,經(jīng)歷產(chǎn)品導(dǎo)入期、成長(zhǎng)期、成熟期和衰退期等各個(gè)階段,一般比通用計(jì)算機(jī)要
長(zhǎng)。
6)不易被壟斷
嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)和各個(gè)行業(yè)的具體應(yīng)用相結(jié)合
后的產(chǎn)物,這一點(diǎn)就決定了它必然是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集
成系統(tǒng)。因此,嵌入式系統(tǒng)不易在市場(chǎng)上形成壟斷。目前,嵌入式系統(tǒng)處于百花齊放、各有所
長(zhǎng)、全面發(fā)展的時(shí)代,各類(lèi)嵌入式系統(tǒng)軟硬件差別顯著,其通用性和可移植性都較通用計(jì)算機(jī)
系統(tǒng)要差。在學(xué)習(xí)嵌入式系統(tǒng)時(shí)要有所側(cè)重,然后觸類(lèi)旁通。
7.常見(jiàn)的嵌入式操作系統(tǒng)有哪幾種?
【答案】
1)pC/OS-H
2)嵌入式Linux
3)Android
4)WindowsCE
8.ARM處理器有什么特點(diǎn)?
【答案】
因?yàn)锳RM處理器采用RISC結(jié)構(gòu),所以它具有RISC架構(gòu)的一些經(jīng)典特點(diǎn)。
(1)體積小、功耗低、成本低、性能高。
(2)支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件。
(3)大量使用寄存器,指令執(zhí)行速度更快。
(4)大多數(shù)數(shù)據(jù)操作都在寄存器中完成。
(5)尋址方式靈活簡(jiǎn)單,執(zhí)行效率高。
(6)內(nèi)含嵌入式在線仿真器。
9.府述ARM處理器的應(yīng)用領(lǐng)域。
【答案】
ARM處理器可廣泛應(yīng)用于以下領(lǐng)域。
(1)為通信、消費(fèi)電子、成像設(shè)備等產(chǎn)品,提供可運(yùn)行復(fù)雜操作系統(tǒng)的開(kāi)放應(yīng)用平臺(tái)。
(2)在海量存儲(chǔ)、汽車(chē)電子、工業(yè)控制和網(wǎng)絡(luò)應(yīng)用等領(lǐng)域,提供實(shí)時(shí)嵌入式應(yīng)用。
(3)在軍事、航天等領(lǐng)域,提供寬溫、抗電磁干擾、耐腐蝕的復(fù)雜嵌入式應(yīng)用。
10.什么嵌入式微處理器分類(lèi)。
【答案】
嵌入式微處理器、嵌入式微控制器、嵌入式DSP、嵌入式SoC
11.Cortex-M系列處理器有哪些特征?
【答案】
Cor(ex-M系列處理器的特征如下:
(1)RISC處理器內(nèi)核:高性能32位CPU、具有確定性的運(yùn)算、低延遲3階段管道,可
達(dá)l.25DMIPS/MHzo
(2)Thumb-2指令集:16/32位指令的最佳混合、小于8位設(shè)備3倍的代碼大小、走性能
沒(méi)有負(fù)面影響,提供最佳的代碼密度。
(3)低功耗模式:集成的睡眠狀態(tài)支持、多電源域、基于架構(gòu)的軟件控制。
(4)嵌套矢量中斷控制器(NVIC):低延遲、低抖動(dòng)中斷響應(yīng)、不需要匯編編程、以純C
語(yǔ)言編寫(xiě)中斷服務(wù)例程,能完成出色的中斷處理。
(5)工具和RTOS支持:廣泛的第三方工具支持、Cortex微控制器軟件接口標(biāo)準(zhǔn)(CMSIS).
最大限度地增加軟件成果重用。
(6)CoreSight調(diào)試和跟蹤:JTAG或2針串行線調(diào)試(SWD)連接、支持多處理器、支
持實(shí)時(shí)跟蹤。此外,Cortcx-M系列處理器還提供了一個(gè)可選的內(nèi)存保護(hù)單元(MPU),提供低
成本的調(diào)試/追蹤功能和集成的休眠狀態(tài),以增加靈活性。
第2章
1.STM32F407X系列微控制器支持幾種時(shí)鐘源?
【答案】
STM32F407X系列微控制器支持3種不同的時(shí)鐘源用來(lái)驅(qū)動(dòng)系統(tǒng)時(shí)鐘(SYSCLK):HSI振蕩
器時(shí)鐘;HSE振蕩器時(shí)鐘;PLL時(shí)鐘。
2.簡(jiǎn)要說(shuō)明HSE時(shí)鐘的啟動(dòng)過(guò)程。
【答案】
當(dāng)使用外部晶體/陶瓷諧振器(HSE晶體)時(shí),4?26MHz外部振蕩器可為系統(tǒng)提供更為精
確的主時(shí)鐘o首先配置結(jié)構(gòu)體RCC_OscInitStruct.OscillatorType=
RCC_OSCILLATORTYPE_HSE,選擇時(shí)鐘源為HSE,讀取
HAL_RCC_OscConfig(&RCC_OscInitStruct)的返回值,如果返回值為HAL_OK則表示高速外部
振蕩器穩(wěn)定且就緒。在啟動(dòng)時(shí),直至I]函數(shù)_HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY)查
詢(xún)到RCC_FLAG_HSERDY參數(shù)被硬件置1,時(shí)鐘才被移放出來(lái)。如果在RCC中斷控制函數(shù)
_HAL_RCC_ENABLE_IT(RCC」T_HSERDY)中允許產(chǎn)生中斷,將會(huì)產(chǎn)生相應(yīng)中斷。HSE
晶體可以通過(guò)配置結(jié)構(gòu)體RCC_OscInilSlruct.HSEState=RCC_HSE_ON或
RCC_OscInitStruct.HSEState=RCC_HSE_OFF,通過(guò)函數(shù)
HAL_RCC_OscConfig(&RCC_OscInitStrucl)來(lái)啟動(dòng)和關(guān)閉。
3.如果HSE晶體振蕩器失效,哪個(gè)時(shí)鐘被作為備用時(shí)鐘源?
【答案】
如果HSE晶體振蕩器失效,HSI時(shí)鐘會(huì)被作為備用時(shí)鐘源。
4.簡(jiǎn)要說(shuō)明LSI校準(zhǔn)的過(guò)程。
【答案】
LSI校準(zhǔn)的分四步進(jìn)行:
1)打開(kāi)TIM5,設(shè)置通道4為輸入捕獲模式。
2)設(shè)置AHOMAPR的TIM5CH4IREMAP位為1,在內(nèi)部將LSI連接到TIM5的通道4。
3)通過(guò)TIM5的捕獲/比較4通道事件或者中斷來(lái)測(cè)量LSI時(shí)鐘頻率。
4)根據(jù)測(cè)量結(jié)果和期望的通道RTC時(shí)間基數(shù)和獨(dú)立看門(mén)狗的超時(shí)時(shí)間,設(shè)置20位預(yù)分
頻器
5.當(dāng)STM32F407X系列處理器采用25MHz的高速外部時(shí)鐘源時(shí),通過(guò)PLL倍頻后能夠得
到的最高系統(tǒng)頻率是多少?此時(shí)AHB、APB1、APB2總線的最高頻率分別是多少?
【答案】
當(dāng)STM32F407X系列處理器采用25MHz的高速外部時(shí)鐘源時(shí),通過(guò)PLL倍頻后能夠得到
的最高系統(tǒng)頻率是168MHz,此時(shí)AHB總線的最高頻率是168MHz,APB2總線的最高頻率是
168MHz,APB1總線的最高頻率是84MHz。
6.簡(jiǎn)要說(shuō)明在STM32F4()7x上不使用外部晶振時(shí)OSC」N和OSC_OUT的接法。
【答案】
對(duì)于100腳或144腳的產(chǎn)品,OSC_IN應(yīng)接地,OSC_OUT應(yīng)懸空。對(duì)于少于100腳的產(chǎn)
品,有2種接法:OSC_IN和OSC_OUT分別通過(guò)10KQ電阻接地。此方法可提高EMC性能。
分別重映射OSC」N和OSC.OUT至PDO和PD1,再配置PDO和PD1為推挽輸出并輸出0‘。
此方法可以減小功耗并節(jié)省2個(gè)外部電阻。
7.簡(jiǎn)要說(shuō)明在使用HSE時(shí)鐘時(shí)程序設(shè)置時(shí)鐘參數(shù)的流程。
【答案】
用HSE時(shí)鐘,程序設(shè)置時(shí)鐘參數(shù)流程:
1)定義RCC內(nèi)部/外部振蕩器(HSE、HSI、LSE和LSI)配置結(jié)構(gòu)體
RCC_OscIni(TypeDef結(jié)構(gòu)體;
2)定義RCC系統(tǒng)、AHB和APB總線時(shí)鐘配置結(jié)構(gòu)體RCC.ClklnitTypeDef:
3)選擇振蕩器類(lèi)型為HSE,RCC_OscIni(Struct.OscillatorType=
RCC_OSCILLATORTYPE_HSE;
4)配置HSE時(shí)鐘為開(kāi)啟狀態(tài),RCC_OscInitStruct.HSEState=RCC_HSE_ON;
5)配置HSE分頻因子,RCC.OscInitStruct.HSEPredivValue=
RCC_HSE_PREDIV_DIV1;
6)配置HIS時(shí)鐘為開(kāi)啟狀態(tài),RCC_OscInitStruct.HSISta(e=RCC_HSI_ON;
7)配置PLL為開(kāi)啟狀態(tài),RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;
8)酉己置PLL源為HSE,RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_HSE;
9)配置PLL倍頻系數(shù)為9,RCC_OscInitStruct.PLL.PLLMUL=RCC_PLL_MUL9;
10)初始化RCC振蕩器,HAL_RCC_OscConfig(&RCC_OscInitStruct);
11)選擇要配置的總線時(shí)鐘,RCC_ClkInilSlruct.ClockType=
RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCL
K1|RCC_CLOCKTYPE_PCLK2;
⑵選擇SYSCLK時(shí)鐘源為PLLCLK,RCC.ClklnitStruct.SYSCLKSource=
RCC_SYSCLKSOURCE_PLLCLK;
13)配置AHB時(shí)鐘分頻系數(shù)為1,RCC_ClkInitStruct.AHBCLKDivider=
RCC_SYSCLK_DIV1;
14)配置APB1時(shí)鐘分頻系數(shù)為2,RCC_CIkInitStruct.APBICLKDivider=
RCC_HCLK_DIV2;
15)配置APB2時(shí)鐘分頻系數(shù)為1,RCC_ClkInitStruct.APB2CLKDivider=
RCC_HCLK_DIV1;
16)初始化總線時(shí)鐘,HAL_RCC_ClockConfig(&RCC_ClkInitStruct,
FLASH_LATENCY_2)o
第3章
l.STM32CubcMX軟件是什么?
【答案】
STM32CubeMX軟件是ST有限公司為STM32系列微控制器快速建立工程,并快速初
始化使用到的外設(shè)、GP1O等而設(shè)計(jì)的,大大縮短了開(kāi)發(fā)時(shí)間。
2.STM32CubeMX軟件的特點(diǎn)是什么?
【答案】
(1)集成了ST有限公司的每一款型號(hào)的MCU/MPU的可配置的圖形界面,能夠自動(dòng)
提示IO沖突并且對(duì)于復(fù)用10可自動(dòng)分配。
(2)具有動(dòng)態(tài)驗(yàn)證的時(shí)鐘樹(shù)。
(3)能夠很方便的使用所集成的中間件。
(4)能夠估算MCU/MPU在不同主頻運(yùn)行下的功耗。
(5)能夠輸出不同編譯器的工程,比如能夠直接生成MDK、EWARM、STM32CubeIDE、
MakeFile等工程。
3.STM32CubeMX軟件的工作區(qū)有哪4個(gè)界面?
(1)Pinout&Configuration(引腳與配置)界面,這是對(duì)MCU的系統(tǒng)內(nèi)核、外設(shè)、中
間件和引腳進(jìn)行配置的界面,是主要的工作界面。
(2)ClockConfiguration(時(shí)鐘配置)界面,通過(guò)圖形化的時(shí)鐘樹(shù)對(duì)MCU的各個(gè)時(shí)鐘
信號(hào)頻率進(jìn)行配置的界面.
(3)ProjectManager(項(xiàng)目管理)界面,對(duì)項(xiàng)目進(jìn)行各種設(shè)置的界面.
(4)Tools(工具)界面,進(jìn)行功耗計(jì)算、DDRSDRAM適用性分析(僅用于STM32Mpi
系列)的操作界面。
第4章
l.STM32CubeIDE軟件是什么?
【答案】
STM32CubeIDE是STM32clibe生態(tài)系統(tǒng)中的一個(gè)重要軟件工具,是ST官方免費(fèi)提供的
STM32MCU/MPU程序開(kāi)發(fā)IDE軟件。
2.STM3?CiiheIDF有什么特點(diǎn)?
【答案】
STM32CubeIDE就是在TrueSTUDIO基礎(chǔ)上改進(jìn)和升級(jí)得來(lái)的,有如下一些特點(diǎn):
(1)STM32CubeIDE使用的是Eclipse【DE環(huán)境,具有強(qiáng)大的編輯功能,其使用習(xí)慣
與TrueSTUDIO相同。
(2)STM32CubcIDE使用的是GNUC/C++編譯器,支持在STM32項(xiàng)目開(kāi)發(fā)中使用
C++編程。
(3)STM32CubcIDE內(nèi)部集成了STM32CubeMX,在STM32CubeIDE里就可以進(jìn)行
MCU圖形化配置和代碼生成,然后在初始代碼基礎(chǔ)上繼續(xù)編程。當(dāng)然,STM32CubeIDE也
可以和獨(dú)立的STM32CubeMX配合使用。
3.STM32CubePrograinmer軟件有什么特色?
(I)可對(duì)片內(nèi)Flash進(jìn)行擦除或編程以及查看Flash內(nèi)容。
(2)支持sl9、hex、elf和bin等格式的文件。
(3)支持調(diào)試接口或boolloader接口。
①STLINK調(diào)試接口(JTAG/SWD)
②UART或USBDFUboolloader接口
(4)支持對(duì)外部的存儲(chǔ)器的擦除或編程。
(5)支持STM32芯片的自動(dòng)編程(擦除、校驗(yàn)、編程、選項(xiàng)字配置)。
(6)支持對(duì)STM32片內(nèi)OTP區(qū)域的編程。
(7)既支持圖形化界面操作也支持命令行操作。
(8)支持對(duì)ST-Link調(diào)試器的在線固件升級(jí)。
(9)配合STM32TrustedPackageCreatortool實(shí)現(xiàn)固件加密操作。
(10)支持Windows,Linux和MacOS多種操作系統(tǒng)。
第5章
1.列舉GPIO的工作模式。
【答案】
(1)輸入浮空模式。
(2)輸入上拉模式。
(3)輸入下拉模式。
(4)模擬功能模式。
(5)具有上拉/下拉功能的開(kāi)漏輸出模式。
(6)具有上拉/下拉功能的推挽輸出模式。
(7)具有上拉/下拉功能的復(fù)用功能推挽模式。
(8)具有上拉/下拉功能的復(fù)用功能開(kāi)漏模式。
2.STM32F407系列微控制器每個(gè)GPIO端口有「16個(gè)—引腳。
3.當(dāng)引腳被配置為模擬功能模式時(shí),上拉/下拉功能應(yīng)被一禁止_。
4.當(dāng)引腳被配置為輸出模式,而輸出類(lèi)型被配置為開(kāi)漏時(shí),引腳要輸出高電平,需要
使能引腳上拉功能,
5.控制引腳輸出電平時(shí),需要操作-ODR寄存器:獲取引腳狀態(tài)需要操作
一IDR寄存器。
6.在stm32f407的庫(kù)函數(shù)中,使能GPIOA時(shí)鐘,使用的庫(kù)函數(shù)是
HALRCCGPIOACLKENABLE。。
7.在stm32f407的庫(kù)函數(shù)中,初始化GPIO功能,使用的庫(kù)函數(shù)是_void
HAL_GPlO」nit(GPIO_TypeDcf*GPIOx,GPIO」nitTypcDcf*GPIO」nit)___。
8.當(dāng)要同時(shí)初始化某個(gè)GPIO的1號(hào)、2號(hào)引腳,賦給GPIO」nitTypcDcf結(jié)構(gòu)體類(lèi)型
成員GPIO_Pin的值是_GPIO_PIN_1|GPIO_PIN_2。
9.在stm32f407的庫(kù)函數(shù)中,讀取某個(gè)特定GP1O引腳狀態(tài),使用的庫(kù)函數(shù)是
GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uinll6_tGPIO_Pin)。
10.在sim32f407的庫(kù)函數(shù)中,設(shè)定某些特定GPIO引腳輸出狀態(tài),使用的庫(kù)函數(shù)是void
HAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO.Pin,GPIO_PinStatePinState)o
H.結(jié)合電路說(shuō)明推挽輸出和開(kāi)漏輸出的區(qū)別。
【答案】在推挽輸出下,輸出電路中有PMOS和NMOS管組成的推挽結(jié)構(gòu)電路,當(dāng)ODR
寄存器中對(duì)應(yīng)位寫(xiě),1'時(shí),NMOS管截止,PMOS管導(dǎo)通,引腳輸出高電平。當(dāng)ODR寄存器
中對(duì)應(yīng)位寫(xiě),0'時(shí),NMOS管導(dǎo)通,PMOS管截止,引腳輸出低電平。
-開(kāi)
菜
讀灶
普
注TTL施密特%V
人觸發(fā)器
開(kāi)/笑一
建保護(hù)
拉25
臉人驅(qū)動(dòng)耨二極管
我Hi上
0r-KJPlC
宗輸出強(qiáng)動(dòng)器-引碑
開(kāi)/關(guān)
亳
冢拉K保護(hù)
-----C|FP-MOS
三4:極管
讀E籌輸出控制v
]FN-MOS?亡
V*推挽
在開(kāi)漏輸出下,輸出電路中有只有NMOS管,當(dāng)ODR寄存器中對(duì)應(yīng)位寫(xiě)〒時(shí),NMOS
管截止,這是引腳處于浮空狀態(tài),必須通過(guò)上拉電阻使引腳輸出高電平。當(dāng)ODR寄存器中
對(duì)應(yīng)位寫(xiě)G時(shí),NMOS管導(dǎo)通,PMOS管截止,引腳輸出低電平。
12.當(dāng)把引腳配置為模擬輸入模式時(shí),那么它是否還具備耐5V功能?
【答案】
不具備耐5V功能。
此時(shí),引腳輸入通道和數(shù)字電路隔離,處于模擬電路狀態(tài)
13.簡(jiǎn)述片上外設(shè)使用初始化流程。
【答案】
(I)使能GPIO的時(shí)鐘(非常重要),涉及以下文件。
(2)設(shè)置對(duì)應(yīng)于片上外設(shè)使用的GPIO工作模式。
(3)如果使用復(fù)用功能,需要單獨(dú)設(shè)置每一個(gè)GPIO引腳的復(fù)用功能。
(4)在應(yīng)用程序中讀取引腳狀態(tài)、控制引腳輸出狀態(tài)或使用復(fù)用功能完成特定功能。
14.編寫(xiě)程序,將GPIOD的1號(hào)、3號(hào)、5號(hào)、7號(hào)、9號(hào)引腳配置為推挽輸出模式,
速度為50MHz,將0、2號(hào)、4號(hào)、6號(hào)、8號(hào)引腳配置為上拉輸入模式。
【答案】
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.編寫(xiě)程序,將GPIOD的1號(hào)、5號(hào)、7號(hào)引腳輸出高電平,3號(hào)、9號(hào)引腳輸出低
電平,并將引腳2號(hào)、6號(hào)、8號(hào)上的狀態(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.有獨(dú)立按鍵電路,連接在STM32F407ZGT6微控制器的GPIOE的5號(hào)引腳,要求
在每次按鍵后將連接GPIOB的2號(hào)引腳上的LED燈反轉(zhuǎn),電路如圖所示。
+3.3V
〈52LED3
e
PB2
--------IZZJ-
330c
請(qǐng)編寫(xiě)程序?qū)崿F(xiàn)按鍵動(dòng)作的檢測(cè),編寫(xiě)以下程序。
(1)主程序。
(2)連接按鍵引腳和LED引腳的初始化程序。
(3)按鍵檢測(cè)程序。
假設(shè)已有延時(shí)函數(shù)voiddelay_ms(ul6nms);,此函數(shù)可直接調(diào)用。
【答案】
#dcfineKEY_ONI
#defineKEY_OFF0
(1)
intmain(void)
(
delay_init(168);〃初始化延時(shí)函數(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)
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);〃去抖動(dòng)
if(HAL_GPIO_ReadPin(GPIOx,GPIO_Pin)==KEY_ON)
returnKEY_ON;
else
returnKEY_OFF:
)
else
returnKEY_OFF;
17.有矩陣按鍵,其電路如圖所示。
(I)矩陣按鍵掃描原理和流程圖。
(2)編寫(xiě)程序?qū)崿F(xiàn)矩陣按鍵控制,按鍵SI?S4分別對(duì)應(yīng)數(shù)字1-4(引腳初始化程序和
按鍵控制程序)。
【答案】
(I)
①將列線設(shè)置為輸出模式(圖中PBO和PBI),并分別在PBO和PB1上輸出低電平。
行線設(shè)置為輸入模式(圖中PB2和PB3)。都使能上拉。
②讀取PB2和PB3狀態(tài),判斷是否有按鍵按下。
(判斷原則:PB2和PB3都是高電平時(shí),沒(méi)有按鍵按下。PB2和PB3有任何一
個(gè)為低電平是,有按鍵按下。
判斷原理:在沒(méi)有按鍵按下去的時(shí)候,由于上拉電阻的存在,PB2和PB3都是
高電平,讀取狀態(tài)時(shí),PB2=1,PB3=1。如果有按跡按下去的話,摸一個(gè)行線和列線
連接在一起。由于PBO和PBI都為低電平,因此連接在一起的行線會(huì)被列線下拉到低
電平。這時(shí),在讀取PB2和PB3狀態(tài)時(shí),就不會(huì)全是高電平。
例如:當(dāng)按下S1時(shí),PB1和PB2連在一起,PB2被
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 帶你認(rèn)識(shí)什么是結(jié)構(gòu)化面試
- 化學(xué)反應(yīng)工程試卷
- 2024美容院美容院與養(yǎng)生館合作經(jīng)營(yíng)協(xié)議范本3篇
- 2024年度現(xiàn)代農(nóng)業(yè)技術(shù)研發(fā)人員聘用合同模板3篇
- 2025年度酒店廚師團(tuán)隊(duì)承包與客房服務(wù)一體化合同3篇
- 2025年度校園食堂食品安全培訓(xùn)及供餐服務(wù)協(xié)議3篇
- 馬鞍山師范高等專(zhuān)科學(xué)?!豆夥O(shè)備概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川工商學(xué)院《英語(yǔ)聽(tīng)說(shuō)Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州電子信息職業(yè)技術(shù)學(xué)院《微生物學(xué)實(shí)驗(yàn)C》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津財(cái)經(jīng)大學(xué)《橋牌與博弈論》2023-2024學(xué)年第一學(xué)期期末試卷
- 《沙盤(pán)技術(shù)》教學(xué)大綱
- (主城一診)重慶市2025年高2025屆高三學(xué)業(yè)質(zhì)量調(diào)研抽測(cè) (第一次)地理試卷(含答案)
- 通風(fēng)系統(tǒng)安裝工程施工合同書(shū)
- (新版)多旋翼無(wú)人機(jī)超視距駕駛員執(zhí)照參考試題庫(kù)(含答案)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專(zhuān)業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之12:“6策劃-6.1應(yīng)對(duì)風(fēng)險(xiǎn)和機(jī)遇的措施”(雷澤佳編制-2025B0)
- 醫(yī)院培訓(xùn)課件:《護(hù)士角色轉(zhuǎn)換與職業(yè)生涯設(shè)計(jì)》
- DLT5210.1-電力建設(shè)施工質(zhì)量驗(yàn)收及評(píng)價(jià)規(guī)程全套驗(yàn)評(píng)表格之歐陽(yáng)法創(chuàng)編
- 《IT企業(yè)介紹》課件
- (2024)湖北省公務(wù)員考試《行測(cè)》真題及答案解析
- 《抽搐的鑒別與處理》課件
- 自來(lái)水廠建設(shè)項(xiàng)目可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論