日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32复习题

發(fā)布時間:2023/12/20 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32复习题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.STM32F103是_32_位嵌入式系統(tǒng),內(nèi)核是ARM公司的___Cortex-M3___。

2.STM32的所有端口都有外部中斷能力。當(dāng)使用外部中斷線時,相應(yīng)的引腳必須配置成?? 輸入模式? 。

3.STM32具有單獨的位設(shè)置或位清除能力。這是通過 GPIOx->BSRR_ 和GPIOx->BRR? 寄存器來實現(xiàn)的。

4.STM32芯片內(nèi)部集成的 12位 位ADC是一種逐次逼近(比較)型模擬數(shù)字轉(zhuǎn)換器,具有? 18個通道?? ,可測量16個外部和2個內(nèi)部信號源? 。

5.STM32的NVIC管理著包括Cortex-M3核異常等中斷,其和ARM處理器核的接口緊密相連,可以實現(xiàn)? 時延? 的中斷處理,并有效地處理? 后到中斷? 。

6.STM32通用定時器TIM的16位計數(shù)器可以采用三種方式工作,分別為?? 向上計數(shù) ?模式、? 向下計數(shù)?? 模式和 向上下計數(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)?????????? 來實現(xiàn)引腳的重新映射.

11.STM32的? USART 為通用同步異步收發(fā)器,其可以與使用工業(yè)標準? NRZ?? 異步串行數(shù)據(jù)格式的外部設(shè)備之間進行全雙工數(shù)據(jù)交換。

12.STM32的USART可以利用???? 分數(shù)波特率??? 發(fā)生器提供寬范圍的波特率選擇。

13.智能卡是一個???? 單線半雙工????? 通信協(xié)議,STM32的智能卡功能可以通過設(shè)置USART_CR3寄存器的?? SCEN??????? 位來選擇。

14.STM32提供了CAN總線結(jié)構(gòu),這是一種???? 基本擴展?? ?CAN(Basic Extended CAN),也就是?? bxCAN???? 。

15.簡述基于ARM Cortex-M3的STM32芯片特點。

答:ST公司的STM32系列芯片采用了ARM Cortex-M3內(nèi)核,其分為兩個系列。STM32F101系列為標準型,運行頻率為36MHz;STM32F103系列為標準型,運行頻率為72MHz。STM32全系列芯片都具有引腳到引腳一一對應(yīng)的特點,并且相同封裝的內(nèi)部資源均相同,這就給用戶升級帶來很大方便。

16.簡述STM32最小硬件開發(fā)系統(tǒng)的組成及其各部分的作用。

答:讀者可以參閱正文中的第3節(jié),其中包括如下幾個部分:

  • 主芯片:采用STM32系列,為整個開發(fā)系統(tǒng)的核心,本書所有的程序都運行在其中。
  • 晶體振蕩部分:提供了硬件時序以及實時時鐘使用。
  • 供電部分:采用AM1117為芯片提供穩(wěn)定的3.3V電壓。
  • 復(fù)位部分:采用一個按鍵開關(guān)來實現(xiàn)

    17.簡述嵌套向量中斷控制器(NVIC)的主要特性。

    支持嵌套和向量中斷

    43個可屏蔽中斷通道;

    16個可編程的優(yōu)先等級;

    低延遲的異常和中斷處理;

    電源管理控制;

    系統(tǒng)控制寄存器的實現(xiàn);

    18.簡述STM32中TIM功能特點。

    STM32提供了高級控制定時器TIM1/8,通用定時器TIM2~5,基本定時器TIM6/7。這幾個定時器都是由可編程預(yù)分頻器驅(qū)動的16 位自動裝載計數(shù)器構(gòu)成。它們都可以做一些基本的定時,還可以做PWM輸出或者輸入捕獲。除此之外,高級控制定時器具有剎車輸入,互補輸出和重復(fù)次數(shù)計數(shù)器功能,基本定時器具有觸發(fā)DAC同步電路的功能。

    19.簡述STM32中ADC功能特點。

    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管腳引出。既方便了用戶進行PCB設(shè)計,還可以虛擬地增加復(fù)用功能的數(shù)量

    21.STM32高級定時器有哪些功能?

    ?? 高級定時器TIM1適合多種用途,包含測量輸入信號的脈沖寬度,或者產(chǎn)生輸出波形。使用定時器預(yù)分頻器和RCC時鐘控制預(yù)分頻器,可以實現(xiàn)脈沖寬度和波形周期從幾個微秒到幾個毫秒的調(diào)節(jié)。

    22.STM32的GPIO的配置模式有那幾種?如何進行配置模式的配置?

    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的功能特點。、

    答:STM32的USART為通用同步異步收發(fā)器,其可以與使用工業(yè)標準NRZ異步串行數(shù)據(jù)格式的外部設(shè)備之間進行全雙工數(shù)據(jù)交換。USART還可以利用分數(shù)波特率發(fā)生器提供寬范圍的波特率選擇。

    STM32的USART支持同步單向通信和半雙工單線通信。同時,其也支持LIN(局部互連網(wǎng)),智能卡協(xié)議和IrDA(紅外數(shù)據(jù))SIR ENDEC規(guī)范,以及調(diào)制解調(diào)器(CTS/RTS)操作。STM32還具備多處理器通信能力。另外,通過多緩沖器配置的DMA方式,還可以實現(xiàn)高速數(shù)據(jù)通信。

    24.簡述STM32時鐘的類型。

    答:STM32提供了三種不同的時鐘源,其都可被用來驅(qū)動系統(tǒng)時鐘SYSCLK,這三種時鐘源分別為:

  • HSI振蕩器時鐘
  • HSE振蕩器時鐘
  • PLL時鐘
  • 這三種時鐘源還可以有以下2種二級時鐘源:

  • 32kHz低速內(nèi)部RC,可以用于驅(qū)動獨立看門狗和RTC。其中,RTC用于從停機/待機模式下自動喚醒系統(tǒng)。
  • 32.768kHz低速外部晶振也可用來驅(qū)動RTC(RTCCLK)。
  • 任一個時鐘源都可被獨立地啟動或關(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);

    }

    ??????

    void RCC_Configuration()

    {

    ? SystemInit();

    ? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

    }

    27、編制一個循環(huán)點亮LED燈的程序。有4個發(fā)光二極管,它們的公共極(陽極)接+5V,陰極通過限流電阻分別于PB12、PB13、PB14、PB15,每次控制其中某個LED燈點亮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機實現(xiàn)串行通訊,串行口使用1位起始位、8位數(shù)據(jù)位、無校驗位和1停止位,波特率位9600bps。編程實現(xiàn)接收PC機發(fā)送的數(shù)據(jù)后回傳給PC機,#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”);

    }

    總結(jié)

    以上是生活随笔為你收集整理的STM32复习题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。