STM32复习题

这篇具有很好参考价值的文章主要介绍了STM32复习题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.STM32F103是_32_位嵌入式系统,内核是ARM公司的___Cortex-M3___。

2.STM32的所有端口都有外部中断能力。当使用外部中断线时,相应的引脚必须配置成   输入模式 

3.STM32具有单独的位设置或位清除能力。这是通过 GPIOx->BSRR_ GPIOx->BRR  寄存器来实现的。

4.STM32芯片内部集成的 12位 位ADC是一种逐次逼近(比较)型模拟数字转换器,具有  18个通道   ,可测量16个外部和2个内部信号源  。

5.STM32的NVIC管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现  时延  的中断处理,并有效地处理  后到中断 

6.STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为   向上计数  模式、  向下计数   模式和 向上下计数  模式。

7.当STM32的I/O端口配置为输入时,   输出缓冲器   被禁止,   施密特触发输入       被激活。根据输入配置(上拉,下拉或浮动)的不同,该引脚的    弱上拉和下拉电阻        被连接。出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对    输入数据寄存器   的读访问可得到I/O状态。

8.STM32的所有端口都有外部中断能力。当使用    外部中断线        时,相应的引脚必须配置成     输入模式       

9.ST公司还提供了完善的通用IO接口库函数,其位于     stm32f10x_gpio.c         ,对应的头文件为     stm32f10x_gpio.h        

10.为了优化不同引脚封装的外设数目,可以把一些    复用功能    重新映射到其他引脚上。这时,复用功能不再映射到    它们原始分配的引脚         上。在程序上,是通过设置   复用重映射和调试I/O配置寄存器(AFIO_MAPR)           来实现引脚的重新映射.

11.STM32的  USART 为通用同步异步收发器,其可以与使用工业标准  NRZ   异步串行数据格式的外部设备之间进行全双工数据交换。

12.STM32的USART可以利用     分数波特率    发生器提供宽范围的波特率选择。

13.智能卡是一个     单线半双工      通信协议,STM32的智能卡功能可以通过设置USART_CR3寄存器的   SCEN        位来选择。

14.STM32提供了CAN总线结构,这是一种     基本扩展    CAN(Basic Extended CAN),也就是   bxCAN    

15.简述基于ARM Cortex-M3的STM32芯片特点。

答:ST公司的STM32系列芯片采用了ARM Cortex-M3内核,其分为两个系列。STM32F101系列为标准型,运行频率为36MHz;STM32F103系列为标准型,运行频率为72MHz。STM32全系列芯片都具有引脚到引脚一一对应的特点,并且相同封装的内部资源均相同,这就给用户升级带来很大方便。

16.简述STM32最小硬件开发系统的组成及其各部分的作用。

答:读者可以参阅正文中的第3节,其中包括如下几个部分:

  1. 主芯片:采用STM32系列,为整个开发系统的核心,本书所有的程序都运行在其中。
  2. 晶体振荡部分:提供了硬件时序以及实时时钟使用。
  3. 供电部分:采用AM1117为芯片提供稳定的3.3V电压。

复位部分:采用一个按键开关来实现

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

支持嵌套和向量中断

43个可屏蔽中断通道;

16个可编程的优先等级;

低延迟的异常和中断处理;

电源管理控制;

系统控制寄存器的实现;

18.简述STM32中TIM功能特点。

STM32提供了高级控制定时器TIM1/8,通用定时器TIM2~5,基本定时器TIM6/7。这几个定时器都是由可编程预分频器驱动的16 位自动装载计数器构成。它们都可以做一些基本的定时,还可以做PWM输出或者输入捕获。除此之外,高级控制定时器具有刹车输入,互补输出和重复次数计数器功能,基本定时器具有触发DAC同步电路的功能。

19.简述STM32中ADC功能特点。

STM32 ADC是12位逐次比较型ADC,有18个通道,可测量16个外部、2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。

20.简述STM32的不同复用功能的重映射功能。

STM32有很多的内置外设,这些内置外设都是与I/O口共用引出引脚,通过相应的配置,很多复用功能的引脚可以通过重映射,从不同的I/O管脚引出。既方便了用户进行PCB设计,还可以虚拟地增加复用功能的数量

21.STM32高级定时器有哪些功能?

   高级定时器TIM1适合多种用途,包含测量输入信号的脉冲宽度,或者产生输出波形。使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。

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复用开漏输出

8.GPIO_Mode_AF_PP复用推挽输出

23.简述STM32的USART的功能特点。、

答:STM32的USART为通用同步异步收发器,其可以与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART还可以利用分数波特率发生器提供宽范围的波特率选择。

STM32的USART支持同步单向通信和半双工单线通信。同时,其也支持LIN(局部互连网),智能卡协议和IrDA(红外数据)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。STM32还具备多处理器通信能力。另外,通过多缓冲器配置的DMA方式,还可以实现高速数据通信。

24.简述STM32时钟的类型。

答:STM32提供了三种不同的时钟源,其都可被用来驱动系统时钟SYSCLK,这三种时钟源分别为:

  1. HSI振荡器时钟
  2. HSE振荡器时钟
  3. PLL时钟

这三种时钟源还可以有以下2种二级时钟源:

  1. 32kHz低速内部RC,可以用于驱动独立看门狗和RTC。其中,RTC用于从停机/待机模式下自动唤醒系统。
  2. 32.768kHz低速外部晶振也可用来驱动RTC(RTCCLK)。

任一个时钟源都可被独立地启动或关闭,这样可以通过关闭不使用的时钟源来优化整个系统的功耗。

25.简述DMA控制器的基本功能。

答:STM32的DMA 控制器有7个通道,每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA 请求的优先权。DMA 控制器和Cortex-M3 核共享系统数据线执行直接存储器数据传输。因此,1 个DMA请求占用至少2 个周期的CPU 访问系统总线时间。为了保证Cortex-M3 核的代码执行的最小带宽,DMA 控制器总是在2 个连续的DMA 请求间释放系统时钟至少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);

}文章来源地址https://www.toymoban.com/news/detail-497522.html

      

void RCC_Configuration()

{

  SystemInit();

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

}

27、编制一个循环点亮LED灯的程序。有4个发光二极管,它们的公共极(阳极)接+5V,阴极通过限流电阻分别于PB12、PB13、PB14、PB15,每次控制其中某个LED灯点亮1S后,转到下一个LED灯亮,循环不止。#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机实现串行通讯,串行口使用1位起始位、8位数据位、无校验位和1停止位,波特率位9600bps。编程实现接收PC机发送的数据后回传给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;//波特率设置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”);

}

到了这里,关于STM32复习题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【嵌入式学习-STM32F103-TIM-编码器接口】

    编码器测速相当于测频法测正交脉冲的频率,CNT计次,每隔一段时间取一次计次。高级,它是带方向的计次。 通过定时器的编码器接口来实现自动计次。之前的代码是通过触发外部中断,然后在中断函数里手动进行计次。使用编码器接口的好处就是节约软件资源。对于频繁执

    2024年02月01日
    浏览(39)
  • 嵌入式硬件——stm32F103C8T6

    如下图:    处理器核心:STM32F103C8T6内置了ARM Cortex-M3处理器,这是一种高性能、低功耗的32位RISC处理器,适用于嵌入式系统。 时钟速度:它可以工作在不同的时钟速度,最高主频可达72 MHz。 存储器:包括64KB的Flash程序存储器用于存储程序代码,以及20KB的SRAM用于存储数据和

    2024年02月05日
    浏览(44)
  • 【嵌入式学习-STM32F103-TIM-定时中断和外部时钟】

    1、定时器基本定时,定一个时间,然后让定时器每隔一段时间产生一个中断,来实现每隔一个固定时间执行一段程序的目的,比如要做一个时钟、秒表或者使用一些程序算法 2、定时器输出比较的功能,输出比较这个模块最常见的用途是产生PWM波形,用于驱动电机等设备,使

    2024年02月12日
    浏览(55)
  • STM32复习题

    1.STM32F103是_ 32 _位嵌入式系统,内核是ARM公司的___ Cortex-M3 ___。 2.STM32的所有端口都有外部中断能力。当使用外部中断线时,相应的引脚必须配置成    输入模式  。 3.STM32具有单独的位设置或位清除能力。这是通过 GPIOx-BSRR_ 和 GPIOx-BRR  寄存器来实现的。 4.STM32芯片内部集成

    2024年02月10日
    浏览(22)
  • [嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集

    上一篇:[嵌入式软件][启蒙篇][仿真平台] STM32F103实现LED、按键 学C语言时,使用的printf()函数,就是通过串口打印出来的。 跟外部器件通信,比如GPS模块、蓝牙模块、wifi模块; 两个开发板之间通信,制定私有协议。 PC电脑通信,使用上位机显示数据或控制下位机。 操作:打

    2024年01月22日
    浏览(49)
  • 【嵌入式学习笔记】嵌入式基础9——STM32启动过程

    程序段交叉引用关系(Section Cross References):描述各文件之间函数调用关系 删除映像未使用的程序段(Removing Unused input sections from the image):描述工程中未用到被删除的冗余程序段(函数/数据) 映像符号表(Image Symbol Table):描述各符号(程序段/数据)在存储器中的地址、类

    2024年02月15日
    浏览(69)
  • stm32嵌入式实验考核

    STM32 实验考核题目 1. 利用 STM32 小板实现:控制外接 LED 灯每隔 3 秒钟亮暗变换,同 时在 PC 机上显示 MCU 的计时时间,MCU 的初始时间由 PC 机 方设置。 2. 利用 STM32 小板实现:利用导线外接 GPIO 口模拟 2 个按键输入, 根据输入组合的四种情况,分别控制三色灯四种流水灯效果

    2024年02月03日
    浏览(39)
  • 嵌入式 STM32 通讯协议--MODBUS

    目录 一、自定义通信协议 1、协议介绍 2、网络协议 3、自定义的通信协议  二、MODBUS通信协议 1、概述 2、MODBUS帧结构  协议描述 3、MODBUS数据模型   4、MODBUS事务处理的定义 5、MODBUS功能码  6、功能码定义   7、MODBUS数据链路层 8、MODBUS地址规则  9、MODBUS帧描述 10、MODBUS两种

    2024年02月11日
    浏览(45)
  • STM32串口通信详解(嵌入式学习)

    时钟信号在电子领域中是指用于同步和定时电路操作的周期性信号。它在数字系统和通信系统中起着至关重要的作用,用于协调各个组件之间的数据传输和操作。 时钟信号有以下几个重要的方面: 频率:时钟信号的频率是指单位时间内信号周期的数量。它通常以赫兹(Hz)为

    2024年02月09日
    浏览(58)
  • STM32的时钟系统(嵌入式学习)

    时钟是指用于计量和同步时间的装置或系统。时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,例如:串口数据的发送、AD转换、定时器计数等。因此时钟对于计算机系统是至关重要的,通常时钟系

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包