嵌入式作业汇总

嵌入式作业汇总


目录

第一章 嵌入式系统概述

1.什么是嵌入式系统?

    嵌入式系统的定义从不同角度可以有不同的定义。
从广义的角度:
    嵌入式系统是一切非PC和大型机的计算机系统
从应用的角度
    嵌入式系统是控制、监视或辅助设备、机器和车间运行的装置。
从系统的角度:
    嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统,是更大系统的一个完整的子系统。
从技术的角度:
    嵌入式系统是一个以应用为中心、以计算机技术为基础,并融合微电子技术、通信技和自动控制技术,而且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。

2.列举嵌入式系统的主要特点。

    专用性、可裁剪行、实时性、可靠性、具有较长的生命周期、不易被垄断。

3.无操作系统的嵌入式软件主要有哪几种实现方式?

    循环轮询系统、前后台系统

4.什么是引导加载程序?它的主要功能是什么?

    引导程序一般由汇编语言编写,在嵌入式系统上电后运行,完成自检、存储映射、时钟系统和外设接口配置等一系列硬件初试化工作。

5.列举嵌入式系统的主要分类?

按硬件划分:
     根据嵌入式处理器的字长,可分为 4 8 16 32 64 位嵌入式系统。
按软件复杂度划分:
    无操作系统控制、小型操作系统控制、大型操作系统控制的嵌入式
系统 。
按实时性划分:
    非实时嵌入式系统、硬实时嵌入式系统、软实时嵌入式系统 。

第二章 嵌入式系统开发

1.简述嵌入式软件开发工具的构成。

    编辑器、编译器、链接器、调试和下载工具。

2.嵌入式系统的开发过程可以分为哪几个阶段?

    需求分析、系统规划、系统实现、系统测试、系统发布

第三章 ARM Cortex-M3处理器

1.ARM Cortex M3 处理器的总线接口有哪些类型?

    主要有I Code 总线、 D Code 总线、系统总线、外部私有外设总线和调试访问端口总线 DAP

2.ARM Cortex M3 处理器有几种工作状态?支持哪些数据类型?

    ARM Cortex M3 处理器有两种工作状态:Thumb 状态和调试状态。
    支持的数据类型:字(32b)、半字(16b)、字节 (8b)

3.详述 ARM Cortex M3 的寄存器及其主要用途。

    1)通用寄存器 R0~R12 数据操作。
    2)堆栈指针寄存器 SP 用作堆栈指针。
    3)链接寄存器 LR 调用子程序时保存返回地址。
    4)程序计数器 PC 用于存放下一条执行的指令地址。

4.概述 ARM Cortex M3 处理器的两种操作模式及其切换机制。

    线程模式和处理者模式,异常产生使中断用户应用程序执行从线程模式切换到处理者模式,执行异常服务程序,异常返回,由处理者模式切换到线程模式,继续执行被打断的用户应用程序。

5.异常和中断有什么联系和区别? ARM Cortex M3 处理器最多能支持多少种异常?他们的优先级是如何规定的?

    1) 在 ARM 中凡是发生打断程序正常执行流程的事件,都被称作异常。中断是一种特殊的异常且是异步事件,异常还包括同步事件。
    2) ARM Cortex M3 处理器最多能支持 240 种异常。
    3) 优先级通过抢占优先级和子优先级划分。

第四章 ARM Cortex-M3的STM32微处理器

1.简述 ARM Cortex 内核与基于 ARM Cortex M3 内核的微控制器之间的区别和联系。

    ARM Cortex内核是ARM公司设计,而基于ARM Cortex 内核的微控制器是各大厂商根据ARM公司的 内核,设计各具特色的微控制器。其中 MPU 由 ARM Cortex内核、调试系统、内部总线、外设、存储器、时钟复位、IO 等封装而成。 MCU=CPU+RAM/ROM+I/O

2.STM32F103微控制器集成了标准ARM CoreSight调试端口SWJ-DP,它有两种不同的端口:JTAG-DP和SW-DP。相比JTAG-DP,SW-DP有什么优势?

    SW-DP串行线调试端口,占用的引脚比较少,为AHP-AP模块提供2针(时钟+数据)接口。

3.STM32F103微控制器有哪些低功耗模式?他们各自有什么特点?如何进入和退出这些低功耗模式?

    1)睡眠模式:内核停止工作,外设还在继续工作。CPU停止运行、PLL关闭、关闭除唤醒内核的外设外其他所有外设时钟。当内核遇到WFE或WFI指令进入睡眠模式,直到某个外设产生事件或中断请求,退出睡眠模式。
    2)停机模式:睡眠模式的基础上,所有外设时钟都被关闭。CPU停止运行、PLL、HIS、HSE、关闭、关闭所有外设时钟、调压器低功耗模式。先设置电源控制寄存器SLEEPDEEP位置位、PDDS清零,一旦遇到WFE或WFI指令,进入停机模式。通过EXTI信号唤醒。EXTI信号可以是16个外部I\O引脚之一、PVD的输出、RTC闹钟或USB唤醒信号。
    3)待机模式:最低的电能消耗。CPU停止运行、PLL、HIS、HSE、关闭、关闭所有外设时钟、调压器关闭。先设置电源控制寄存器SLEEPDEEP位置位、PDDS置位,一旦遇到WFE或WFI指令,进入待机模式。退出条件是NRST引脚上的外部复位信号、IWDG复位、WKUP引脚上的上升沿或RTC闹钟事件。

4.什么是看门狗?STM32F103微控制器的看门狗有何特性?

    1)看门狗是嵌入式系统中常用的安全保障行机制。
    2)它可以实时监测程序的运行状态,即使由于某种原因微控制器进入一个错误状态,程序跑飞进入死循环,系统也可以自动恢复。

5.什么是启动代码?它主要执行哪些工作?

    1)启动代码用来初始化系统以及为嵌入式操作系统或者使用高级语言编写的嵌入式应用软件做好运行前准备的一段汇编语言程序。
    2)初始化异常向量表、初始化时钟系统、初始化存储器系统、初始化堆栈和跳转到main函数等。

6.简述STM32F103微控制器的启动过程。

    1)根据BOOT0和BOOT1引脚选择启动存储器映射。
    2)从地址0x00000000处取出栈顶指针值放入MSP。
    3)从地址0x00000004处取出复位异常服务程序的入口地址放入PC。
    4)执行复位异常服务程序。

第五章 GPIO

1.列举 STM32F103 微控制器 GPIO 的 8 种工作模式及使用场合。

    1.上拉输入 2.下拉输入 3.浮空输入 4.模拟输入 5.普通推挽输出 6.普通开漏输出 7.复用推挽输出 8.复用开漏输出

2.哪些情况下需要使能 STM32F103 微控制器 APB2 总线上的 AFIO 时钟?

      1.外设复用功能重映射2.外部中断映射3.事件输出

3.简述使用库函数操作 STM32F103 微控制器 GPIO 的具体过程。

    1.使能该引脚所属 GPIO 端口(如 GPIOA 、 GPIOB 等)的时钟
    2.通过 GPIO_InitTypeDef 结构体变量配置 GPIO 引脚
    3.操作该引脚

第六章 定时器

1.嵌入式系统中,定时器的主要功能是什么?

      定时器是微控制器必备的片上外设。微控制器中的定时器实际上是一个计数器,可以对内部脉冲/外部输入进行技术,不仅拥有基本的计数/延时功能,还具有输入捕获、输出比较和PWM输出等高级功能,可以连接颜色传感器、步进电机等多种外设。

2.STM32F103微控制器定时器的类型有几种?STM32F103微控制器不同类型的定时器又什么区别?

      STM32F103微控制器定时器的类型共有三种,分别是基本定时器、通用定时器和高级定时器。基本定时器只具有最基本的定时功能,即累计时钟脉冲数超过预定值时产生定时器溢出事件,通用计时器除了具备基本的定时功能外,还主要用于测量输入脉冲的频率和脉冲宽度以及输出PWM脉冲等,还具有编码接口。高级定时器除了具有通用定时器的所有功能外,还具有带死区插入的互补PWM输出。

3.STM32F103微控制器通用定时器的常用工作模式有哪些?

      STM32F103微控制器通用定时器的常用工作模式有三种分别是:普通模式、比较输出模式和捕获输入模式。

4.什么是PWM?PWM的实现方式有哪几种?

      PWM简称脉宽调制,顾名思义指对脉冲宽度的控制,它是一种利用微控制器的数字输出来对模拟电路进行控制的非常有效的技术。PWM的实现方式主要有传统的数字电路、微控制器普通I/O模拟和微控制器的PWM直接输出等。

第七章 中断

1.中断服务函数与普通函数相比有何异同?

      中断服务程序,在结构上与函数非常相似。但不同的是,函数一般有参数有返回值,并在应用程序中被人为显式的调用执行,而中断服务程序一般没有参数也没有返回值,并且只有中断发生时才会被自动隐式的调用执行。

2.对于不同的中断源,STM32F103微控制器的相应顺序遵循什么规则?

    1.先比较抢占优先级,抢占优先级高的中断优先响应。
    2.当抢占优先级系统时,比较子优先级,子优先级高的中断优先响应。
    3.当上述两者相同时,比较他们在中断向量表中的位置,位置低的中断优先响应。

3. STM32F103微控制器事件和中断有什么区别和联系?

      从外部激励信号来看,中断和事件的请求信号没有区别,只是在STM32F03微控制器的内部将他们分开:一路信号(中断)会被送至NVIC向CPU产生中断请求,至于CPU如何响应,由用户编写或者系统默认的对应的中断服务程序决定。另一路信号(事件)会向其他功能模块发送脉冲触发信号,至于其他功能模块会如何响应这个脉冲触发信号,则由对应的模块自己决定。

4.C语言的关键字volatile有什么作用?主要用于那些场合?

      它意为易变的、不稳定的。简单的说,就是不让编译器进行优化,即每次读取或者修改volatile变量的值时,都必须从新从内存或者寄存器中读取或者修改。嵌入式开发中,volatile主要用于以下场合:
    1.中断服务程序中修改的供其他程序检测的变量。
    2.多任务环境下各任务间共享的标志。
    3.存储器映射的硬件寄存器。

第八章 DMA

1.什么是DMA?DMA有哪些传输要素?DMA的传输过程分为哪几个步骤?

      DMA是一种完全由硬件执行数据交换的工作方式。
步骤:
    1.DMA请求
    2.DMA响应
    3.DMA传输
    4.DMA结束

2.STM32F103微控制器DMA一共有多少通道?如何响应在不同通道上同时产生DMA请求?

      一共由12条通道(DMA1由7条通道,DMA2有5条通道)
响应顺序(同一时刻,一个DMA只能有一个请求有效):
    1.先比较软件优先级(最高优先级>高优先级>中等优先级>低优先级)
    2.如果同一个DMA的两个请求有相同的软件优先级,则较低编号的通道比较高编号的通道有更高的优先权。

3.STM32F103微控制器的DMA传输方式有哪几种?

    1.普通模式:是指在DMA传输结束时,DMA通道被自动关闭,进一步的DMA请求将不被响应。
    2.循环模式:用于处理一个环形的缓冲区,每轮传输结束时数据传输的配置会自动的更新为初始状态,DMA传输会连续不断的进行。

4.STM32F103微控制器DMA传感允许的最大数据量是多少?

     DMA数据传输数量(最大为65535)可编辑

第九章 ADC

1.ADC进行模数转换分为哪三步?

     采样、量化、编码

2.ADC的主要类型有哪些?他们各自有什么特点?

    (1)逐次逼近型:规模中等、转换速度较快、转换精度较高、功耗低。
    (2)电压时间转换型:工作性能比较稳定且抗干扰能力强,转换速度慢。
    (3)电压频率转换型:抗干扰能力强,转换速度慢。

3.STM32F103的ADC共有几路通道?可分为几组?每组最多可容纳多少路通道?

     ADC最多有18路模拟输入通道,除了ADC1_IN16与内部温度传感器相连,ADC1_IN17与内部参照电压相连,其他的16路通道都可用作模拟输入的引脚。可分为规则通道组和注入通道组,其中规则通道组最多包含16路请求,注入通道最多包含4路通道。注入通道组转换的启动有两种方式:触发注入和自动注入。

4.假设STM32F103的APB2总线频率为72MHz,ADC预分频系数设置为8,采样时间选取41.5个ADC时钟周期,那么此时ADC转换时间是多少?

     ADC的转换时间TCONV=采样时间+量化编码时间(固定为12.5个ADC时钟周期)
     ADC的转换时间=41.5+12.5=54个ADC时钟周期
     APB2总线频率为72MHz经ADC预分频系数8预分频后得72/8=9MHz
所以,54*(1/(9*1000000))= 6微秒

第十章 UART

1.简述 UART 的接口组成及其电平标准。

     VCC、TXD、RXD、GND
电平标准:
     UART 采用 TTL/CMOS 的逻辑电平标准(05v、03.3v、0~2.5v 或 0~1.8v)表示数据,用高电平表示逻辑 1,用低电平表示 0。
在 TTL 电平标准中:逻辑 1 通常用+5V 表示,逻辑 0 通常用 0V 表示。
在 CMOS 电平标准中:逻辑 1 的电平一般接近于电源电压,逻辑 0 的电平一般接近于 0V。

2.UART 数据帧由哪些部分组成?

     起始位、数据位、校验位、停止位和空闲位等。

3.假设 STM32F103 微控制器的 USART1 设置为 38.4kbps,7 位数据位,一位偶校验位,2 位停止位,发送一个大小 1KB 的文件,需要多少时间?

     【1024 x 8 / 7 x(7+1+2+1)】/38400=335.2 毫秒

第十一章 SPI

1、通常,SPI 接口由哪几根线组成?它们分别有什么作用?

SPI由4根线组成,具体如下:
     SCK ,即时钟线,由主设备产生。不同的设备支持的时钟频率不同。但每个时钟周期可
以传输一位数据,经过8个时钟周期一个完整的字节数据就传输完成了。
     MOSI ,即主设备数据输出∕从设备数据输入线。这条信号线上的方向是从主设备到从设
备,即主设备从这条信号线发送数据,从设备从这条信号线上接收数据。
     MISO ,即主设备数据输入∕从设备数据输出线。这条信号线上的方向是由从设备到主设
备,即从设备从这条信号线发送数据 。
     SS SPI 从设备选择信号线。当有多个SPI从设备与SPI主设备相连(即“一主多从”)时,SS 用来选择激活指定的从设备,由SPI主设备(通常是微控制器)驱动,低电平有效。当只有一个 SPII 从设备与 SPI 主设备相连(即“一主一从”)时,SS 并不是必需的。

2.SPI 的数据格式有哪几种 ?传输顺序可分为哪几种?

     与UART相似,SPI数据传输也是以 帧 为单位,通常可以选择8位或16位数据帧格式。传输顺序有四种,分别是:CPOL=0,CPHA=0;CPOL=0,CPHA=1; CPOL=1,CPHA=0; CPOL=1,CPHA=1

3.分别概述 STM32F103 微控制器 SPI 主模式的配置,以及在主模式下发送一个字节数据和接受一个字节数据的流程。

将STM32F103微控制器的SPI配置为主模式的步骤如下:
    1.设置SPI串行时钟波特率:SPI_CR1寄存器的BR[2:0]位。
    2.设置SPI协议:SPI_CR1寄存器的CPOL和CPHA位。
    3.设置SPI数据格式:SPI_CR1寄存器的DFF位和LSBFIRST位。
    4.设置NSS工作模式。
     NSS作为输出:当置位SPI_CR1寄存器的SSOE位或调用库函数SPI_SSOutputCmd时,开启主模式下的NSS输出(NSS输出低电平)。此时,当其他SPI设备的NSS引脚与其相连,会收到低电平,及片选成功,成为从设备。
     NSS作为输入:硬件模式下,在整个数据帧传输期间应把NSS脚连接到高电平。
软件模式下,需将SPI_CR1寄存器的SSM位和SSI位置1。此时NSS引脚被释放出来可以另作他用。
    5.设置SPI_CR1寄存器的MSTR位和SPE位:只有当NSS脚被连到高电平,这些为才能保持置位。
主模式下发送一个字节数据和接受一个字节数据的流程如下:
     当数据被程序写入至发送缓冲区时,发送过程开始,在发送第一个数据位时,数据通过内部总线被并行地传入移位寄存器,然后,根据指定的顺序串行地移出到MOSI脚上。当数据完成从发送缓冲区到移位寄存器的传输时,TXE标志被置位。此时,如果设置了SPI_CR1寄存器中的TXEIE位。将产生中断。
     MISO引脚上的数据位随着时钟信号SCK被一位一位依次传入移位寄存器。在SCK最后一个采样时钟边沿后,SPI SR寄存器中的RXNE标志被置位,移位寄存器中接收到的数据被全部传送到接收缓冲区。此时,如果SPICR2寄存器中的RXNEIE位被置1,则会产生中断。当读取SPI数据寄存器SPI_ DR时,会返回这个接收缓冲区的数值,并且清除SPI_ SR寄存器中的RXNE位。

4.分别概述 STM32F103 微控制器 SPI 从模式的配置,以及在从模式下发送一个字节数据和接受一个字节数据的流程。

将STM32F103微控制器的SPI配置为从模式的步骤如下:
    (1)设置SPI协议: SPI_CR1寄存器的CPOL和CPHA位。为保证正确的数据传输,必须和SPL主设备的CPOL和CPHA位配置成相同的方式。
    (2)设置SPI数据格式: SPI_ CR1寄存器的DFF位和LSBFIRST位,同样也必须和SPI主设备的配置相同。
    (3)设置NSS工作模式: NSS只能作为输入不能作为输出。
    硬件模式下,在完整的8/16位数据帧传输过程中、NSS引脚必须为低电平。
    软件模式下,需置位SPL_CR1寄存器中的SSM位并清除SSI位。
    (4)清除SPL_CR1寄存器的MSTR位和设置SPE位,使相应引脚工作于SPI模式下。
在从模式下发送一个字节数据和接受一个字节数据的流程如下:
     当工作在SPI从模式下的STM32F103微控制器发送数据时,数据先被并行地写入发送缓冲区。当收到时钟信号SCK并在MOSI引脚上出现第一个数据位时,数据发送过程开始(此时第一个位被发送出去)。余下的位(对于8位数据帧格式,还有7位:对于16位数据帧格式,还有15位)被装进移位寄存器。当发送缓冲区中的数据完成向移位寄存器的传输时,SPI SR寄存器的TXE标志被置位,此时如果SPI CR2寄存器的TXEIE位也被设置,将会产生中断。
     工作在SPI从模式下的STM32F103微控制器接收数据时,MISO引脚上的数据位随着时钟信号SCK被一位一位依次传入移位寄存器,并转入接收缓冲区。在SCK最后一个采样时钟边沿后,SPI_SR寄存器中的RXNE标志被置位,移位寄存器中接收到的数据字节被全部传发到接收缓冲区,此时,如果SPI_CR2寄存器中的RXNEIE位被置1,则会产生中断。当读取SPI数据寄存器SPI_DR时返回这个接收缓冲区的数值,并且清除SPI_SR寄存器的RXNE位。

第十二章 I2C

1.I2C接口由哪几根线组成?它们分别有什么作用?

I2C接口由两根线组成,它们的作用如下:
     SCL Serial Clock,串行时钟线I2C通信中用于传输时钟的信号线,通常由主机发出。SCL 采用集电极开路或漏极开路的输出方式。这样, I2C 器件只能使 SCL 下拉到逻辑0,而不能强制SCL上拉到逻辑1。
     SDA Serial Data,串行数据线I2C通信中用于传输数据的信号线。与 SCL 类似, SDA也采用集电极开路或漏极开路的输出方式。这样, I2C 器件同样也只能使 S DA 下拉到逻辑0而不能强制SDA上拉到逻辑1。

2.与SPI互连相比,I2C互联有什么特点?

    1)必须在 I2C 总线上外接上拉电阻。
    2)通过地址区分挂载在 I2C 总线上不同的器件。
    3)支持多主机互连。

3.I2C的时序由哪些信号组成?

     I2C的位时序,包括应答信号、起始信号、终止信号等。

4. 试比较嵌入式系统中常用3种通信接口:USRT、SPI和I2C。

     SPI和I2C这两种通信方式都是短距离的,芯片和芯片之间或者其他元器件如传感器和芯片之间的通信。SPI和I2C是板上通信,I2C有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些很薄膜排线很多I2C,I2C能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存这两种线属于低速传输;而UART是应用于两个设备之间的通信,如用单片机做好的设备和计算机的通信。这样的通信可以做长距离的。UART就是我们指的串口,速度比上面两者快, 最高达100K左右,用与计算机与设备或者计算机和计算之间通信,但有效范围不会很长,约10米左右,UART优点是支持面广,程序设计结构很简单。简单的说SPI和I2C是做在电路板上的。而UART是在机器外面连接两个机器的。

5.如何使用 STM32F103 微控制器的 DMA 进行 I2C 通信?

     STM32F103系列微控制器每个I2C1的DMA接收请求、DMA发送请求和DMA及其通道之间存在具体的映射关系。I2C1的DMA接收请求I2C2_Rx被映射到DMA1的通道7,I2C1的DMA发送请求I2C1_Tx被映射到DMA1的通道6;而I2C2的DMA接收请求I2C1_Rx被映射到DMA1的通道5,I2C1死亡DMA发送请求I2C1_Tx被映射到DMA 的通道4。I2C发送是数据寄存器变空或接收时数据寄存器变满,都会产生DMA请求。而且,DMA请求必须在当前字节传输结束之前被响应。当DMA控制器中设置的数据传输数目已经完成时,DMA控制器给I2C接口发送一个传输结束的EOT/EOT_1信号。在中断允许的情况下,将产生一个DMA中断,并且在中断使能时产生一个传输完成中断。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XJTU嵌入式作业2要求实现一个简单的温度转换程序。该程序需要输入一个摄氏温度值,并将其转换为华氏温度和开氏温度后输出。 为了完成这个任务,我们首先需要使用C语言编写一个能够进行温度转换的函数。该函数可以接受用户输入的摄氏温度值,并根据转换公式将其转换为华氏温度和开氏温度。 转换摄氏温度到华氏温度的公式如下: 华氏温度 = 摄氏温度 * 9/5 + 32 转换摄氏温度到开氏温度的公式如下: 开氏温度 = 摄氏温度 + 273.15 在程序中,我们可以使用scanf函数来接受用户输入的摄氏温度值。然后,我们可以声明并初始化华氏温度和开氏温度的变量,并根据转换公式进行计算。 最后,我们可以使用printf函数来输出转换后的华氏温度和开氏温度值。 除了实现温度转换的函数外,我们还可以编写一个主函数来测试该函数的正确性。在主函数中,我们可以调用温度转换函数,并将用户输入的摄氏温度值作为参数传递给该函数。 在运行程序时,用户将被要求输入一个摄氏温度值。程序将自动将该温度转换为华氏温度和开氏温度,并将转换结果输出到屏幕上。 总而言之,XJTU嵌入式作业2要求我们通过C语言编写一个温度转换程序。该程序可以将摄氏温度转换为华氏温度和开氏温度,并将转换结果输出到屏幕上。该程序包括一个温度转换函数和一个主函数来测试该函数的正确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值