嵌入式期末复习题(二)

2023-05-16

考试题型:

一、选择题(每小题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);

       }                  

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式期末复习题(二) 的相关文章

  • CUHK-SYSU数据集介绍

    该数据集是一个大规模的人员搜索基准 xff0c 包含18184张图像和8432个身份 根据图像来源 xff0c 数据集可以分为两部分 xff1a 街道捕捉和电影 xff1a 在街拍中 xff0c 图像通过手持摄像机收集 xff0c 跨越数百
  • ETHZ数据集介绍

    Ess等构建了基于双目视觉的行人数据库用于多人的行人检测与跟踪研究 该数据库采用一对车载的AVT Marlins F033C摄像头进行拍摄 xff0c 分辨率为640 480 xff0c 帧率13 14fps xff0c 给出标定信息和行人
  • Swin Transformer V2

    Swin Transformer V2 论文链接 xff1a https arxiv org pdf 2111 09833 pdf 代码链接 xff1a https github com microsoft Swin Transformer
  • Jetson_Xavier_NX使用教程1(刷机)

    刷机教程 一 xff1a 准备 1 xff1a 准备需要一个tf卡 xff0c 容量最好大点 xff0c 我买的128G的 2 xff1a 还有两个软件一个是格式化卡的软件 xff0c 一个是将镜像文件写入的卡的软件 格式化卡的软件 写入镜
  • Jetson_Xavier_NX使用教程2(简单实用)

    本文会介绍一些刷机后的基本操作 1 风扇控制 刚开始插入电源风扇不转我以外坏了 xff0c 后来才发现并没有 Xavier NX的风扇在系统内核中有一套自动控制温度和转速的算法 xff0c 经过我观察大约在40度左右的时候会自动开启风扇进行
  • NVIDIA Jetson NX使用教程3配置pytorch环境

    本节主要记录 xff0c 安装pytorch及torch vision 1 下载Pytorch 因为jetson属于arm架构的机器 xff0c 所以需要去nvidia的官网下载对应的安装包而不是pytroch的官网 官网链接 xff0c
  • Java 基于 IETF RFC 2617 身份认证

    IETF RFC 2617 身份认证 是基于 HTTP 协议进行验证的 xff0c 认证过程中需要发送两次 HTTP 请求 xff0c 第一次请求服务器返回 401 和 认证标识 xff08 nonce xff09 xff0c 第二次访问H
  • 判断一台机器是大端序还是小端序

    在几乎所有的机器上 xff0c 多字节对象都被存储为连续的字节序列 例如在C语言中 xff0c 一个类型为int的变量x地址为0x100 xff0c 那么其对应地址表达式 amp x的值为0x100 且x的四个字节将被存储在存储器的0x10
  • STL容器保存智能指针并将this指针通过emplace传入STL容器所造成的致命问题(【double free or corruption (out)】和【bad_weak_ptr】)

    我用std queue保存了一个Message类型的智能指针 queue lt shared ptr lt MessageA gt xff0c 然后在Message类型中来将this指针插入队列 xff0c 使用std queue push
  • 实时动态定位(RTK)

    内容来着网络 实时动态定位 xff1a Real Time Kinematic RTK技术的关键在于使用了GPS的载波相位观测量 xff0c 并利用了参考站和移动站之间观测误差的空间相关性 xff0c 通过差分的方式除去移动站观测数据中的大
  • 几个实用的 Bat 脚本命令

    文章目录 1 截图2 息屏后锁屏3 查看当前的路径4 倒计时5 密码输入6 比较两个文本的差异 1 截图 start snippingtool 2 息屏后锁屏 powershell Add Type 39 DllImport 34 user
  • 学习cmake的使用和CMakeLists.txt

    1 学习cmake的使用和CMakeLists txt 文章目录 1 学习cmake的使用和CMakeLists txt1 1 cmake外部构建基础1 2 让每个源文件目录都包含一个CMakeLists txt1 3 安装 1 4 构建静
  • ROS系统基础知识梳理(四) 串口通信

    ROS系统基础知识梳理 四 串口通信 学习ROS系统 xff0c 初步接触到ROS系统外接传感器 xff0c 传感器通过Uart通信向台式机发送数据 xff0c 内容涉及到ROS调用串口数据 串口数据校验 以及欧拉角转换四元数 任务系统 x
  • Keil5中添加新的.c和.h文件

    目录 在Project的文件夹中添加添加路径使用include 在Project的文件夹中添加 如图1所示 xff0c 在User的文件夹上右键 xff0c 添加已有文件 图1 添加路径 然后需要在options for Target xf
  • 学习c语言的总结

    学习时间 xff1a 早上9点 晚上9点 学习内容 xff1a 利用c语言对 的代码学习 xff0c 并根据自己的理解编写代码 xff0c 最后整合学习的代码和自己理解的代码 xff0c 编写出更优的代码 学习体会 xff1a 对一个问题举
  • C/C++程序编译成可执行程序步骤图文源码详解

    一个C 43 43 程序被编译为目标程序的过程中经历了四个部分 xff0c 分别是预处理 编译 汇编 链接 下面将通过一个简单的C 43 43 代码分别执行预处理 编译 汇编 链接四个步骤后的结果和基本原理讲解 注意 xff1a 博主是在u
  • 【linux】程序找不到动态库.so的解决办法|查看.so动态库信息|.so动态库加载顺序

    目录 找不到 so解决方法 方法一 xff1a 添加环境变量 方法二 xff1a 复制so文件到lib路径 方法三 xff1a xff08 推荐 xff09 添加ldconfig寻找路径 方法四 xff1a 在编译目标代码时指定该程序的动态
  • 使用Arduino开发ESP32(08):TCP Client与TCP Server使用

    文章目录 目的TCP Client使用说明常用方法基础使用演示作为WEB Client使用 TCP Server使用说明常用方法基础使用演示作为WEB Server使用 总结 目的 TCP是网络应用中常用的功能 xff0c 很多高级功能也是
  • ModBus学习笔记

    一 什么是ModBus xff1f 1 预备知识 xff08 1 xff09 什么是通讯协议 xff1f 通信协议是指双方实体完成通信或服务所必须遵循的规则和约定 通过通信信道和设备互连起来的多个不同地理位置的数据通信系统 xff0c 要使
  • Jetson TX2 将系统迁移到SD卡,系统文件修改方式

    系统迁移步骤 xff1a 格式化SD卡 复制系统到SD卡 修改系统文件 1 在原系统盘内 cd boot extlinux sudo vim extlinux conf 该文件初始内容如下 xff1a TIMEOUT 30 DEFAULT

随机推荐

  • svn中打标签的一种方法

    SVN创建标签的方法 方法一 xff1a TortoiseSVN客户端浏览创建 选中需要创建标签的目录 xff0c 右键 gt copy to 在弹出框中输入新建标签所在的URL地址 xff0c 填写log信息 xff0c 确定 方法二 x
  • (图解 HTTP)一篇文章带你深入了解 HTTP 协议

    文章目录 一 了解客户端和服务器通讯的过程二 HTTP 是不保存状态的协议三 请求 URI 定位资源四 告知服务器意图的 HTTP 方法1 GET xff1a 获取资源2 POST xff1a 传输实体主体3 PUT xff1a 传输文件4
  • VC编译选项

    C 在预处理输出中保留注释语句 c 只编译 xff0c 不连接 xff0c 相当于在 34 Build 34 菜单下选择了 34 Compile 34 D 定义常量和宏 xff0c 与源程序里的 define 有相同效果 E 预处理C C
  • C语言中String库函数

    为了以后学习以及查阅方便 xff0c 转贴在此 xff0c 若有雷同 xff0c 敬请包含 文中内容摘自 C程序设计教程 xff08 美 xff09 H M Deitel P J Deitel著 xff0c 薛万鹏等译 xff0c 机械工业
  • JAVA与海康威视人脸机对接,使用ISUP方式

    1下载DEMO包 下载地址 JAVA海康威视人脸机isup方式对接demo包 Java文档类资源 CSDN下载 2设置依赖 需要把examples jar和jna jar引入项目 3配置本地 config properties 把ip地址设
  • Keil工程

    文章目录 1 Keil工程添加源文件和头文件 xff08 c和 h xff09 的方法1 方式一2 方式二 2 keil工程生成的MAP文件取消优化 1 Keil工程添加源文件和头文件 xff08 c和 h xff09 的方法 1 方式一
  • 2020-09-28

    通用异步收发器 xff08 Universal Asynchronous Receiver Transmitter xff0c 通常称作UART xff0c 是一种串行 异步 全双工的通信协议 xff0c 在嵌入式领域应用的非常广泛 UAR
  • 【cmake】CMakeList添加库|添加头文件|添加路径|add_executable、add_library、target_link_libraries|添加编译选项|宏开关

    目录 官网查阅 开胃菜例子 CMakeLists生成和添加依赖库 CMakeLists更多小例子 生成 so共享库文件 调用 so共享库文件 生成一个可执行程序的 CMakeList 生成一个 so动态库的 CMakeList add li
  • TCP连接的建立

    前言 xff1a TCP的问题已然困惑我很久了 xff0c 一直是一知半解 xff0c 靠记忆来记住TCP连接的过程 xff0c 不能根本上理解 xff0c 漏洞百出 xff0c 最近抽时间把TCP经典书籍 TCP IP详解 阅读了一下 废
  • 【Nokov】动作捕捉系统培训笔记

    Nokov度量科技 简介 xff1a Nokov是一种光学三维动作捕捉系统 xff0c 采用红外镜头捕捉被动发光标记点 xff0c 构建三维数据的动作采集与分析系统 xff0c 运用于运动分析 步态康复 模拟训练 机械仿生 机器人 无人机
  • 【Nokov】动作捕捉系统标定与机械臂各坐标系的说明

    导语 xff1a 这一周的工作先是完成了度量系统Nokov的标定 xff0c 然后对机械臂自身的编码器得到的坐标值与动作捕捉系统Nokov测得的坐标值进行了比较 xff0c 来观察二者之间的误差 在这个过程中我对Nokov软件Seeker的
  • 【Nokov】关于动捕系统获取刚体姿态的说明

    动作捕捉系统Nokov获取刚体的姿态信息 前言 xff1a 对于动捕系统软件Seeker的基本使用以及获取单个Marker的位置操作已经比较熟悉了 xff0c 对于机械臂而言 xff0c 接下来就是获取它的姿态信息 xff0c 经过昨天下午
  • 【机器人】机械臂与动捕Nokov的深入了解

    导语 xff1a 每次的实践操作后 xff0c 总能刷新我对机械臂以及Nokov的认识 xff0c 既让我惊喜不已 xff0c 同时也让我知道我掌握的还远远不够 xff0c 需要不断的学习 关于机械臂 示教器上NOA姿态表示方式 xff1a
  • Ubuntu18.04+ROS+kalibr标定工具箱安装编译

    目录 前言 一 安装ROS 1 设置镜像源 2 更新软件包索引 3 安装ROS 4 测试ROS是否安装成功 二 安装kalibr melodic 1 kalibr简介 2 安装kalibr 3 测试kalibr 参考文献 xff1a 前言
  • okhttp源码分析,Builder.ParseResult.parse(null, url) HttpUrl.parse(url) 方法详细分析

    在使用okhttp3时 以下方式具体对url进行了怎样的处理 查了许多资料没有发现有关介绍查询源码进行分析添加相关方法介绍 Request request 61 new Request Builder url 34 https www be
  • MP地面站二次开发教程(二)MP的框架与修改

    目录 MP高级功能 主界面基本修改 1 菜单名称背景修改 2 主窗体语言修改 3 主要窗体目录位置 4 菜单栏删除 5 入口函数 6 参数配置函数 定制修改步骤 1 主题环境修改 2 菜单精简 去掉冗余菜单按键 3 功能按键添加 新建按钮实
  • QGC地面站二次开发(三)Qt 简洁地面站

    目录 多机控制原理 多机控制实现 简洁地面站优化 1 飞机的飞行轨迹以不同的颜色区分 2 控制所有的飞机 3 将设定航线送给特定的飞机 多机控制原理 多机地面站支持 TCP UDP 和串口等三种连接方式 xff0c 首先我们需要对这两种连接
  • 基于51单片机的密码锁设计

    研究内容 本系统由STC89C52单片机系统 xff08 主要是STC89C52单片机最小系统 xff09 4 4矩阵键盘 LCD1602显示和报警系统等组成 xff0c 具有设置 修改六位用户密码 超次报警 超次锁定 密码错误报警等功能
  • 【gcc】gcc优化等级 -O1 -O2 -O3 -Os -Ofast -Og|gcc关闭优化

    目录 优化等级 O1 O2 O3 Os Ofast Og cmake 生成 debug和 release 版 Cmake设置优化等级 Debug和Release 方案 About table About question gcc g 43
  • 嵌入式期末复习题(二)

    考试题型 一 选择题 每小题2分 xff0c 15题 xff0c 共30分 二 填空题 每题2分 xff0c 10题 xff0c 共20分 三 简答题 每题5分 xff0c 4题 xff0c 共20分 四 分析题 每题5分 xff0c 3题