1.STM32F103是_32_位嵌入式系統(tǒng),內(nèi)核是ARM公司的___Cortex-M3___。
2.STM32的所有端口都有外部中斷能力。當(dāng)使用外部中斷線時,相應(yīng)的引腳必須配置成?? 輸入模式? 。
3.STM32具有單獨(dú)的位設(shè)置或位清除能力。這是通過 GPIOx->BSRR_ 和GPIOx->BRR? 寄存器來實(shí)現(xiàn)的。
4.STM32芯片內(nèi)部集成的 12位 位ADC是一種逐次逼近(比較)型模擬數(shù)字轉(zhuǎn)換器,具有? 18個通道?? ,可測量16個外部和2個內(nèi)部信號源? 。
5.STM32的NVIC管理著包括Cortex-M3核異常等中斷,其和ARM處理器核的接口緊密相連,可以實(shí)現(xiàn)? 時延? 的中斷處理,并有效地處理? 后到中斷? 。
6.STM32通用定時器TIM的16位計(jì)數(shù)器可以采用三種方式工作,分別為?? 向上計(jì)數(shù) ?模式、? 向下計(jì)數(shù)?? 模式和 向上下計(jì)數(shù)? 模式。
7.當(dāng)STM32的I/O端口配置為輸入時,?? 輸出緩沖器?? 被禁止,?? 施密特觸發(fā)輸入?????? 被激活。根據(jù)輸入配置(上拉,下拉或浮動)的不同,該引腳的??? 弱上拉和下拉電阻??????? 被連接。出現(xiàn)在I/O腳上的數(shù)據(jù)在每個APB2時鐘被采樣到輸入數(shù)據(jù)寄存器,對??? 輸入數(shù)據(jù)寄存器?? 的讀訪問可得到I/O狀態(tài)。
8.STM32的所有端口都有外部中斷能力。當(dāng)使用??? 外部中斷線??????? 時,相應(yīng)的引腳必須配置成???? 輸入模式??????? 。
9.ST公司還提供了完善的通用IO接口庫函數(shù),其位于???? stm32f10x_gpio.c???????? ,對應(yīng)的頭文件為???? stm32f10x_gpio.h???????? 。
10.為了優(yōu)化不同引腳封裝的外設(shè)數(shù)目,可以把一些??? 復(fù)用功能??? 重新映射到其他引腳上。這時,復(fù)用功能不再映射到??? 它們原始分配的引腳???????? 上。在程序上,是通過設(shè)置?? 復(fù)用重映射和調(diào)試I/O配置寄存器(AFIO_MAPR)?????????? 來實(shí)現(xiàn)引腳的重新映射.
11.STM32的? USART 為通用同步異步收發(fā)器,其可以與使用工業(yè)標(biāo)準(zhǔn)? NRZ?? 異步串行數(shù)據(jù)格式的外部設(shè)備之間進(jìn)行全雙工數(shù)據(jù)交換。
12.STM32的USART可以利用???? 分?jǐn)?shù)波特率??? 發(fā)生器提供寬范圍的波特率選擇。
13.智能卡是一個???? 單線半雙工????? 通信協(xié)議,STM32的智能卡功能可以通過設(shè)置USART_CR3寄存器的?? SCEN??????? 位來選擇。
14.STM32提供了CAN總線結(jié)構(gòu),這是一種???? 基本擴(kuò)展?? ?CAN(Basic Extended CAN),也就是?? bxCAN???? 。
15.簡述基于ARM Cortex-M3的STM32芯片特點(diǎn)。
答:ST公司的STM32系列芯片采用了ARM Cortex-M3內(nèi)核,其分為兩個系列。STM32F101系列為標(biāo)準(zhǔn)型,運(yùn)行頻率為36MHz;STM32F103系列為標(biāo)準(zhǔn)型,運(yùn)行頻率為72MHz。STM32全系列芯片都具有引腳到引腳一一對應(yīng)的特點(diǎn),并且相同封裝的內(nèi)部資源均相同,這就給用戶升級帶來很大方便。
16.簡述STM32最小硬件開發(fā)系統(tǒng)的組成及其各部分的作用。
答:讀者可以參閱正文中的第3節(jié),其中包括如下幾個部分:
- 主芯片:采用STM32系列,為整個開發(fā)系統(tǒng)的核心,本書所有的程序都運(yùn)行在其中。
- 晶體振蕩部分:提供了硬件時序以及實(shí)時時鐘使用。
- 供電部分:采用AM1117為芯片提供穩(wěn)定的3.3V電壓。
復(fù)位部分:采用一個按鍵開關(guān)來實(shí)現(xiàn)
17.簡述嵌套向量中斷控制器(NVIC)的主要特性。
支持嵌套和向量中斷
43個可屏蔽中斷通道;
16個可編程的優(yōu)先等級;
低延遲的異常和中斷處理;
電源管理控制;
系統(tǒng)控制寄存器的實(shí)現(xiàn);
18.簡述STM32中TIM功能特點(diǎn)。
STM32提供了高級控制定時器TIM1/8,通用定時器TIM2~5,基本定時器TIM6/7。這幾個定時器都是由可編程預(yù)分頻器驅(qū)動的16 位自動裝載計(jì)數(shù)器構(gòu)成。它們都可以做一些基本的定時,還可以做PWM輸出或者輸入捕獲。除此之外,高級控制定時器具有剎車輸入,互補(bǔ)輸出和重復(fù)次數(shù)計(jì)數(shù)器功能,基本定時器具有觸發(fā)DAC同步電路的功能。
19.簡述STM32中ADC功能特點(diǎn)。
STM32 ADC是12位逐次比較型ADC,有18個通道,可測量16個外部、2個內(nèi)部信號源。各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對齊或右對齊方式存儲在16位數(shù)據(jù)寄存器中。模擬看門狗特性允許應(yīng)用程序檢測輸入電壓是否超出用戶定義的高/低閾值。
20.簡述STM32的不同復(fù)用功能的重映射功能。
STM32有很多的內(nèi)置外設(shè),這些內(nèi)置外設(shè)都是與I/O口共用引出引腳,通過相應(yīng)的配置,很多復(fù)用功能的引腳可以通過重映射,從不同的I/O管腳引出。既方便了用戶進(jìn)行PCB設(shè)計(jì),還可以虛擬地增加復(fù)用功能的數(shù)量
21.STM32高級定時器有哪些功能?
?? 高級定時器TIM1適合多種用途,包含測量輸入信號的脈沖寬度,或者產(chǎn)生輸出波形。使用定時器預(yù)分頻器和RCC時鐘控制預(yù)分頻器,可以實(shí)現(xiàn)脈沖寬度和波形周期從幾個微秒到幾個毫秒的調(diào)節(jié)。
22.STM32的GPIO的配置模式有那幾種?如何進(jìn)行配置模式的配置?
8種
1.GPIO_Mode_AIN模擬輸入
2.GPIO_Mode_IN_FLOATING浮空輸入
3.GPIO_Mode_IPD下拉輸入
4.GPIO_Mode_IPU上拉輸入
5.GPIO_Mode_Out_OD開漏輸出
6.GPIO_Mode_Out_PP推挽輸出
7.GPIO_Mode_AF_OD復(fù)用開漏輸出
8.GPIO_Mode_AF_PP復(fù)用推挽輸出
23.簡述STM32的USART的功能特點(diǎn)。、
答:STM32的USART為通用同步異步收發(fā)器,其可以與使用工業(yè)標(biāo)準(zhǔn)NRZ異步串行數(shù)據(jù)格式的外部設(shè)備之間進(jìn)行全雙工數(shù)據(jù)交換。USART還可以利用分?jǐn)?shù)波特率發(fā)生器提供寬范圍的波特率選擇。
STM32的USART支持同步單向通信和半雙工單線通信。同時,其也支持LIN(局部互連網(wǎng)),智能卡協(xié)議和IrDA(紅外數(shù)據(jù))SIR ENDEC規(guī)范,以及調(diào)制解調(diào)器(CTS/RTS)操作。STM32還具備多處理器通信能力。另外,通過多緩沖器配置的DMA方式,還可以實(shí)現(xiàn)高速數(shù)據(jù)通信。
24.簡述STM32時鐘的類型。
答:STM32提供了三種不同的時鐘源,其都可被用來驅(qū)動系統(tǒng)時鐘SYSCLK,這三種時鐘源分別為:
- HSI振蕩器時鐘
- HSE振蕩器時鐘
- PLL時鐘
這三種時鐘源還可以有以下2種二級時鐘源:
- 32kHz低速內(nèi)部RC,可以用于驅(qū)動獨(dú)立看門狗和RTC。其中,RTC用于從停機(jī)/待機(jī)模式下自動喚醒系統(tǒng)。
- 32.768kHz低速外部晶振也可用來驅(qū)動RTC(RTCCLK)。
任一個時鐘源都可被獨(dú)立地啟動或關(guān)閉,這樣可以通過關(guān)閉不使用的時鐘源來優(yōu)化整個系統(tǒng)的功耗。
25.簡述DMA控制器的基本功能。
答:STM32的DMA 控制器有7個通道,每個通道專門用來管理來自于一個或多個外設(shè)對存儲器訪問的請求。還有一個仲裁器來協(xié)調(diào)各個DMA 請求的優(yōu)先權(quán)。DMA 控制器和Cortex-M3 核共享系統(tǒng)數(shù)據(jù)線執(zhí)行直接存儲器數(shù)據(jù)傳輸。因此,1 個DMA請求占用至少2 個周期的CPU 訪問系統(tǒng)總線時間。為了保證Cortex-M3 核的代碼執(zhí)行的最小帶寬,DMA 控制器總是在2 個連續(xù)的DMA 請求間釋放系統(tǒng)時鐘至少1 個周期。
26、編制控制一個蜂鳴器的程序,蜂鳴器魚GPIO的B口的第五引腳,#include "stm32f10x.h"
#include "stm32f10x.h"
void RCC_Configuration(void);
main(void)
{
? GPIO_InitTypeDef GPIO_InitStructure;
? RCC_Configuration();
? GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
? GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
? GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);?
? GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}文章來源地址http://www.zghlxwxcb.cn/news/detail-497522.html
??????
void RCC_Configuration()
{
? SystemInit();
? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
}
27、編制一個循環(huán)點(diǎn)亮LED燈的程序。有4個發(fā)光二極管,它們的公共極(陽極)接+5V,陰極通過限流電阻分別于PB12、PB13、PB14、PB15,每次控制其中某個LED燈點(diǎn)亮1S后,轉(zhuǎn)到下一個LED燈亮,循環(huán)不止。#include“stm32f10x_map.h”
#include“stm32f10x_map.h”
? char sec=0,sec1=0;
? unsigned short led_dat[4]={1<<12,1<<13,1<<14,1<<15};
? char led_num=0;
? int main(void)
{
? SysTick->LOAD=1E6;
? SysTick->CTRL=1;
? RCC->APB2ENR|=1<<3;
? GPIOB->CRH&=0x0000 ffff;
? GPIOB->CRH|=0x3333 0000;
while (1)
{
?? if(SysTick->CTRL & 1<<16)
{
?? sec+=1;
?? if((sec & 0xf)>9)
?? sec+=6;
}
if(sec!=sec1)
{
?? sec1=sec;
?? GPIOB->BSRR=0xf000;//滅所有LED燈
???GPIOB->BRR=led_dat[led_num];//亮指定LED燈
?? if(++led_num==4)led_num=0;
}
}
}
28.編制一個使用STM32的USART1與PC機(jī)實(shí)現(xiàn)串行通訊,串行口使用1位起始位、8位數(shù)據(jù)位、無校驗(yàn)位和1停止位,波特率位9600bps。編程實(shí)現(xiàn)接收PC機(jī)發(fā)送的數(shù)據(jù)后回傳給PC機(jī),#include“stm32f10x_map.h”(10分)
#include”stm32f10x_map.h”
char data;
void main(void)
{
? RCC->APB2ENR|=1<<2;
? RCC->APB2ENR|=1<<14;
? GPIOA->CRH &=0xffff f00f;
? GPIOA->CRH |=0x0000 04b0;
? USART1->BRR= 0x0341;//波特率設(shè)置8000000/9600
? USART1->CR1|=1<<2;
? USART1->CR1|=1<<3;
? USART1->CR1|=1<<13;
? while(1)
?{
? if(USART1->SR & 1<<5)
?{
data= USART1->DR;
return data;
USART1->DR =data;
? while(!(USART1->SR & 1<<7));
? return USART1->DR;
}
?}
}
29.編制控制一個蜂鳴器的程序。
#include "stm32f10x.h"
void RCC_Configuration(void);
main(void)
{
? GPIO_InitTypeDef GPIO_InitStructure;
? RCC_Configuration();
? GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
? GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
? GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);?
? GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
??????
void RCC_Configuration()
{
? SystemInit();
? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
}
30.編制鍵盤控制初始化程序
Keyboard_test(void)
{
????? UINT8T ucChar;
????? UINT8T szBuf[40];
????? uart_printf(“\n Keyboard Test Example\n”);
????? uart_printf(“Press any key to exit…\n”);
????? Keyboard_init();
??? g_nKeyPress=0xFE;
??? While(1)
??? {
???????? f_nKeyPress=0;
???????? while(f_nKeyPress==0)
???????? {
?????????? if(uart_tetkey())???????????? //Press any key from UART0 to exit
???????????????? return;
?????????? else if(ucChar==7)????????????? //or press 5*4 Key-7 to exit
???????????????? return;
?????????? else if(g_nKeyPress!=0xFE)? //or SB1202/SB1203 to exit
??????????????? return;?
????????? }
? iic_read_keybd(0x70,0x1,&ucChar);??? //get data from ZLG7290
?? If(ucChar!=0)
??? {
???????? ucChar-key_set(ucChar);? //key map for Edukit II
???????? if(ucChar<16)
?????????????? sprintf(&szBuf,”press key %d”,ucChar);
???????? else if(ucChar<255)
?????????????? sprintf(&szBuf,”press key %d”,ucChar);
???????? if(ucChar==0xFF)
?????????????? sprintf(&szBuf,”press key %c”,ucChar);
???????? if(ucChar==0xFF)
?????????????? sprintf(&szBuf,”press key FUN”);
???????????? #ifdef BOARDTEST
??????????????????? print_lcd(200,170,0x1c,&szBuf);
???????????? #endif
???????????? uart_printf(szBuf);
???????????? uart_printf(“\n”)
????????? }
??? ?}
???? uart_printf(“end.\n”);文章來源:http://www.zghlxwxcb.cn/news/detail-497522.html
}
到了這里,關(guān)于STM32復(fù)習(xí)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!