嵌入式技术与应用开发项目教程(STM32版)习题答案

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式技术与应用开发项目教程(STM32版)习题答案

项目一LED控制设计与实现

1-1 嵌入式系统是如何定义的?

嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是控制、监视或辅助设备、机器或用于工厂运作的设备。

目前,国内普遍认同的嵌入式系统定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

1-2 嵌入式系统具有哪些特点?

嵌入式系统具有以下几个显著特点:

(1)嵌入式系统是面向特定应用;

(2)软件要求固态化存储;

(3)嵌入式系统的硬件和软件都必须具备高度可定制性;

(4)嵌入式系统的生命周期较长;

(5)嵌入式系统开发需要开发工具和环境。

1-3 ARM Cortex-M3处理器是哪几个部分组成?

嵌入式系统一般是由嵌入式处理器、存储器、输入输出和软件(嵌入式设备的应用软件和操作系统是紧密结合的)等4部分组成。

1-4 简述STM32F103系列产品的命名规则。

STM32F103系列产品的命名规则,是按照“STM32F103XXYY”格式来命名的,具体含义如下:

(1)产品系列:STM32是基于ARM Cortex-M3内核设计的32位微控制器;

(2)产品类型:F是通用类型;

(3)产品子系列:101是基本型、102是USB基本型(USB全速设备)、103是增强型、105或107是互联型;

(4)引脚数目(第一个X):T是36脚、C是48脚、R是64脚、V是100脚、Z是144脚;

(5)闪存存储器容量(第二个X):4是16K、6是32K、8是64K、B是128K、C是256K、D是384K、E是512K;

(6)封装(第一个Y):H是BGA、T是LQFP、U是VFQFPN、Y是WLCSP64;

(7)温度范围(第二个Y):6是工业级温度范围-400C~850C、7是工业级温度范围-400C~1050C。

1-5 简述STM32固件库开发与寄存器开发的关系。

ST公司推出的官STM32固件库,固件库将这些寄存器的底层操作,都封装起来,提供一整套接口(API)供开发者调用。在大多数场合下,你不需要去知道操作的是哪个寄存器,你只需要知道调用哪些函数即可。

1-6 论述STM32固件库与CMSIS标准之间关系。

(1)STM32固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API)。

(2)ARM公司和芯片生产商共同提出了一套标准CMSIS标准(Cortex Microcontroller Software Interface Standard),既“ARM Cortex™微控制器软件接口标准”。CMSIS分为核内外设访问层、中间件访问层和外设访问层3个基本功能层。

ARM是一个做芯片标准的公司,它负责的是芯片内核的架构设计,而TI、ST这样的公司,并不是做标准的,只是一个芯片公司,他们是根据ARM公司提供的芯片内核标准设计自己的芯片。

任何一个做Cortex-M3芯片,他们的内核结构都是一样的,只是在存储器容量、片上外设、端口数量、串口数量以及其他模块上有所区别,这些资源他们可以根据自己的需求理念来设计。同一家公司设计的多种Cortex-m3内核芯片的片上外设也会有很大的区别,比如STM32F103RBT和STM32F103ZET在片上外设上就有很大的区别。

ST官方库(STM32固件库)就是根据这套CMSIS标准设计的。

(3)CMSIS向下负责与内核和各个外设直接打交道,向上提供实时操作系统用户程序调用的函数接口。

如果没有CMSIS 标准,那么各个芯片公司就会设计自己喜欢的风格的库函数,而CMSIS 标准就是要强制规定,芯片生产公司设计的库函数必须按照CMSIS这套规范来设计。

(4)CMSIS还对各个外设驱动文件的文件名字规范化、函数的名字规范化等一系列规定。

比如,GPIO_ResetBits函数,这个函数名字也是不能随便定义的,是要遵循CMSIS规范的。

又如,在我们使用STM32芯片时,首先要进行系统初始化,CMSIS就规定系统初始化函数名必须为SystemInit,所以各个芯片公司写自己的库函数时,就必须用SystemInit对系统进行初始化。

1-7 STM32固件关键子目录有哪些?其功能是什么?

STM32固件库关键子目录主要有Libraries和Project子目录。

(1)Libraries里面有CMSIS子目录和STM32F10x_StdPeriph_Driver子目录,这2个子目录包含固件库核心的所有子文件夹和文件,主要包含大量的头文件、源文件和系统文件,是开发必须使用的。

(2)Project里面有STM32F10x_StdPeriph_Examples和STM32F10x_StdPeriph_Template 子目录。

STM32F10x_StdPeriph_Examples子目录存放的是ST官方提供的固件实例源码,包含了几乎所有STM32F10x外设的使用详细源代码。在以后的开发过程中,可以参考修改这个官方提供的实例,来快速驱动自己的外设。很多开发板的实例,也都参考了官方提供的例程源码,这些源码对以后的学习非常重要。

STM32F10x_StdPeriph_Template子目录存放的是工程模板。

1-8 STM32固件关键文件有哪些?

STM32固件的关键文件主要存放在Libraries子目录下。

(1)core_cm3.c和core_cm3.h文件

是位于\Libraries\CMSIS\CM3\CoreSupport子目录下面的,分别是内核访问层的源文件和头文件,提供进入M3内核接口。是由ARM公司提供的CMSIS核心文件,对所有CM3内核的芯片都一样,永远都不需要修改这个文件。

(2)STM32F10x子目录的3个文件

在STM32F10x子目录下面有3个文件:system_stm32f10x.c、system_stm32f10x.h以及stm32f10x.h文件,是外设访问层的源文件和头文件。

(3)启动文件

在STM32F10x子目录下面还有一个startup子目录,这个子目录里面放的是启动文件。启动文件主要是进行堆栈之类的初始化、中断向量表以及中断函数定义,还要引导进入main 函数。

相关文档
最新文档