嵌入式期末复习题(二)

考试题型:

一、选择题(每小题2分,15题,共30分)   二、填空题(每题2分,10题,共20分)

三、简答题(每题5分,4题,共20分)      四、分析题(每题5分,3题,共15分)

五、程序设计题(1小题,共15分)

选择题和填空题

  1. 了解Cortex-M处理器采用的架构(P14)

    ARMv7

  1. 了解STM32F1xx系列的内核Cortex的哪个系列(P22)

      Cortex-M3

  1. 了解冯诺依曼结构和哈佛结构的区别(P4)

冯诺依曼结构是由一个中央处理单元(CPU)和单存储空间组成的,即这个存储空间存储了全部的数据和程序,它们内部使用单一的地址总线和数据总线。

哈佛结构存储器分为数据和程序两个存储空间,有各自独立的程序总线和数据总线,可以进行独立编址和独立访问。

  1. 了解Cortex-M3的流水线级数(P50)

    三级流水线,分别是取指、解码、执行。

  1. 了解Cortex-M3处理器的寄存器R14的含义(P31)

    R14:链接寄存器(LR)

  1. 了解STM32的3种时钟总线

AHB、APB1、APB2

  1. 了解STM32系列ARM Cortex-M3芯片支持的三种复位形式(P72)

    系统复位、电源复位、备份区域复位。

  1. 了解基于CMSIS标准的软件架构是由哪几层组成的(P84)

    主要分为4层,用户应用层、操作系统及中间件接口层、CMSIS层、硬件寄存器层。

  1. 了解GPIO引脚的8种I/O模式(参考P102图5-1)

通用开漏输出、通用推挽输出、复用开漏输出、复用推挽输出

模拟输入、浮空输入、下拉输入、上拉输入

  1. 了解I/O口的输出模式下的3种输出速度2MHz、10MHz、50MHz的含义(P106)

    I/O口驱动电路响应速度

  1. 了解STM32外部中断通道和中断源的关系,例如EXTI线5,可以对应5个中断源PA5、PB5、PC5、PD5、PE5参考(参考P142的图6-5)

    EXTI1→PA1、PB1、PC1、PD1、PE1

    EXTI15→PA15、PB15、PC15、PD15、PE15

  1. 了解STM32的外部中断/事件控制器(EXTI)一共支持多少个中断通道(P140)

    一共支持19个中断通道

  1. 了解STM32的USART的停止位的数量包含哪几种(P160)

    4种,分别是0.5、1、1.5、2

14.了解STM32的串口帧格式包含: 起始位、数据帧、奇偶检验位、停止位。(P161)

15.了解PWM的含义

    PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形

  1. 了解STM32的定时器计数器的位数,最大可计数到多少(P183)

     具有16位计数功能,最大可计数到65535

17.了解ADC转换过程:采样--量化--编码

18.了解STM32 ADC 的含义及位数(P235)

    模数转换器  12位

19.了解ST公司库函数的命名规则,例如对于ADC模块,它的源文件命名为stm32f10x_adc.c     它的头文件命名为stm32f10x_adc.h

20.了解STM32芯片内部集成ADC1可测量多少个外部信号源,多少个内部信号源。(P235)

    可测量16个外部信号源,2个内部信号源。

简答题

  1. 熟悉STM32最小系统的5大部分组成及其作用。(P81)

答:5大部分:电源电路、时钟电路、复位电路、启动电路和程序下载电路。

作用:计算机系统最基本的操作就是执行指令,即在每个指令周期从存储器取出指令译码来执行,所以要有电源能量注入,时钟电路协调处理器和存储器间的信号交换,程序下载电路将程序下载到程序存储器,启动电路通知微处理器程序的存储位置,复位电路初始化内部数据存储器和寄存器。

  1. 熟悉CMSIS层的3大组成部分的作用(P85)

答:核内外设访问层:对寄存器地址的定义,对核寄存器、NVIC、调试子系统的访问接口定义,以及对特殊用途寄存器的访问接口定义。

中间件访问层:主要负责定义一些中间件访问的API函数,如为TCP/IP协议栈、SD/MMC、USB协议,以及实时操作系统的访问与调试提供标准软件接口。

设备外设访问层:负责对硬件寄存器地址及外设访问接口进行定义。

  1. 熟悉中断通道的含义(P127),中断硬件结构的组成(P131)

答:含义:中断通道是处理中断的信号通路,每个中断通道对应唯一的中断向量和唯一的中断服务程序,但该中断通道可具有多个可以引起中断的中断源,这些中断源都能通过对应的“中断通道”向内核申请中断。

中断硬件结构的组成:中断通道、中断处理和中断响应。

  1. 熟悉STM32的通用定时器包含哪些 (P177)定时器有哪几种计数模式(P186)

答:通用定时器包含TIM2、TIM3、TIM4、TIM5

定时器有3种计数模式,分别是向上计数模式、向下计数模式、中央计数模式

分析题

1.熟悉下面代码的功能和出现的场合(该代码类似于实验LAB2_1_WaterLED的LED_Init()函数中的一行代码)

代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

功能:使能GPIOC时钟的功能

出现的场合:常用于硬件初始化代码中

2.熟悉STM32的中断优先级,熟悉占优先级和副优先级的含义,仔细阅读那3段文字(P133),关于NVIC要熟悉以下知识点:

(1)嵌套向量中断控制器(NVIC)的优先级一共占了4位,分为两组,即占有先级和副优先级。如果占优先级占了0位,则副优先级占4位。

(2)嵌套向量中断控制器(NVIC)具有可编程的优先等级 个。

(3)假设STM32配置了2个中断向量,其属性如下表。那么:

1.STM32在响应中断B时,中断A能否打断中断B中的中断服务函数?

2.如果中断B和中断C同时到达,CPU优先响应哪个中断?

3.如果STM32在响应中断C时,中断B能否打断中断C的中断服务函数?

中断向量

    占优先级

   副优先级

       A

      2

       2

       B

      3

       1

       C

      3

       3

小提示:数字越小,优先级越高。

答案:

(1)中断A可以打断中断B的服务函数,因为A的占优先级比B高,可以形成中断嵌套。

(2)如果中断B和中断C同时到达,CPU优先响应中断B,因为中断B的副优先级比C高。

(3)如果STM32在响应中断C时,中断B不能打断中断C中的中断服务函数,因为中断B和中断C的占优先级相同,占优先级相同的2个中断是无法形成中断嵌套的,只有当中断C的中断服务函数执行完后,才会执行中断函数B。

3.熟悉串口结构体初始化函数每一行代码的含义。例如下面一到八行的代码(该代码来自实验LAB_UART1,每一行代码的含义参考书上P167-169)

void UART1_Init(void)

USART_InitTypeDef USART_InitStruct; 1   //声明USART结构体

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//打开USART1的时钟

  USART_InitStruct.USART_BaudRate=9600;   2    //波特率  

  USART_InitStruct.USART_WordLength=USART_WordLength_8b;  3  //数据位数为8

  USART_InitStruct.USART_StopBits=USART_StopBits_1;  4  //一个停止位

  USART_InitStruct.USART_Parity=USART_Parity_No;   5  //无奇偶校验位

  USART_InitStruct.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;  //发送接收均使能

  USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;  7   //无硬件控制流

  USART_Init(USART1,&USART_InitStruct);  8  //初始化USART_InitStruct结构体

  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//接收使能

  USART_Cmd(USART1,ENABLE);// USART1使能

}

程序设计题

  1. 熟悉STM32实现流水灯的编程设计。具体代码参考实验LAB2_1_WaterLED. 大家要熟悉代码里的LED_Init()函数和主函数中的代码。

考试攻略:大家有事没事就把这2个函数的代码默写个十几遍,评分标准是写对一行代码就给一分。

LED_Init()函数

#include "LED.h"

void LED_Init(void)

{

       GPIO_InitTypeDef  GPIO_InitStruct;

       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);  //打开PA、PD端口的时钟

       //设置LED0--PA8的引脚模式

       GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8| GPIO_Pin_2;

       GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;

       GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;

       GPIO_Init(GPIOA, &GPIO_InitStruct);

       GPIO_SetBits(GPIOA,GPIO_Pin_8);

       //设置LED1--PD2的引脚模式

       GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2;  

       GPIO_Init(GPIOD, &GPIO_InitStruct);

       GPIO_SetBits(GPIOD,GPIO_Pin_2);  

}

主函数

int main()

{                  

       LED_Init();    //初始化LED的引脚          

       while(1)

       {           

           GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
Delay(1000);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
Delay(1000);

       }                  

}

  • 4
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chris_Brown

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值