ARM单片机题库
第一章
- 描述图灵机理论模型的基本思想和构造。
- 冯.诺伊曼架构模型中,完整的计算机系统包含哪几部分?
- 冯诺伊曼架构和哈佛架构有什么区别?
- STM32采用了ARM的哪种内核?该内核具有什么特点?
- 嵌入式系统的开发过程包括哪些阶段?简述各个的任务。
第二章
- Cortex-M3内核有哪几类总线?
- Cortex-M3预定义的存储器空间分为哪几个部分?
- Cortex-M3的工作模式和工作等级有哪些?有哪几种配合?
- 什么是中断?描述中断处理的过程。
第三章
- STM32最小系统由哪些部分组成?
- STM32的低功耗模式有哪些?各模式的区别是什么?
第五章
- GPIO的输入、输出的模式有哪些?各模式有哪些特点?
- GPIO的初始化需要配置哪些参数,各参数都有哪些取值?
- IO端口的重映射的含义是什么?
- STM32外部中断/事件控制器能检测多少个事件/中断?控制器的主要特征有哪些?外部中的触发方式有哪些?
- 用1个按键控制LED灯,共4个LED灯,按键使用外部中断,按键按1次为模式1,按2次为模式2按键3次为模式1,按4次为模式2,依次循环,模式1中4个LED灯同步闪烁,模式2中4个LED构成流水灯。
第六章
- STM32F103x有哪几类定时器?各个类别之间的区别是什么?各类包含的计数器的编号有哪些?
- 通用定时器的计数模式有哪些?
- 输入捕获和输出比较模式的功能是什么?
第七章
- 常用的ADC有哪些类型?各个类型的特点是什么?各类的应用场景有哪些?
- ADC的主要技术指标有哪些?各自的含义是什么?
- STM32的ADC属于哪一类?其主要特征是什么?
- STM32的ADC有多少个通道?可测量的信号有哪些?
- STM32的ADC的规则组和注入组有什么区别?
- STM32的ADC有哪几种采样时间?采样时间和转换时间的关系是什么?
第九章
- STM32的USART是串行还是并行传输?有哪些引脚?S、A分别表示什么含义?
- USART的收发模块包含哪几个部分?
- USART初始化时配置的参数有哪些?
- STM32的SPI是串行还是并行传输?有哪些引脚?
- SPI的主要特点是什么?SPI总线的工作方式有哪些?
- SPI初始化时配置的参数有哪些?
- STM32的I2C是串行还是并行传输?有哪些引脚?
- 12C初始化时配置的参数有哪些?
- I2C有哪几个工作模式?
- I2C通信的流程和时序是怎样的?
参考答案:
第一章
- 图灵机理论模型的基本思想和构造:
- 基本思想:图灵机是一种抽象的计算机理论模型,用来模拟人类用纸笔进行数学运算的过程。图灵机的概念包括一条无限长的纸带,纸带上分成连续的格子,每个格子上可以写有一个符号(包括空格)。还有一个头,可以读写符号,并按规则左右移动。
- 构造:图灵机由五部分组成:一组状态、一组输入符号、一组纸带上的符号(包括空格符号)、一套转移规则(函数),和一个起始状态。纸带是图灵机的存储媒介,头用来读写符号并根据转移规则移动。
- 冯·诺依曼架构模型中,完整的计算机系统包含的部分:
- 冯·诺依曼架构是现代计算机设计的基础,包括以下五部分:存储器、运算器、控制器、输入设备和输出设备。存储器用于存储程序和数据,运算器进行数据处理,控制器控制程序的执行顺序,输入设备和输出设备分别用于数据的输入和输出。
- 冯诺依曼架构和哈佛架构的区别:
- 主要区别在于数据和指令的存储及访问方式。在冯·诺依曼架构中,程序指令和数据使用同一存储系统,共享同一个总线系统。而在哈佛架构中,指令和数据存储在物理上分开,使用不同的存储器和总线,这允许同时访问指令和数据,提高了处理速度。
- STM32采用了ARM的哪种内核? 该内核具有什么特点?:
- STM32系列微控制器通常采用的是ARM的Cortex-M系列内核,例如STM32F103系列使用Cortex-M3内核。这些内核具有高性能、低功耗的特点,支持高效的实时处理。Cortex-M3内核具有高性能的中断管理,支持大量的并行数据处理和高效的信号处理。
- 嵌入式系统的开发过程包括哪些阶段? 简述各个阶段的任务:
- 嵌入式系统的开发过程通常包括以下阶段:
- 需求分析:明确功能性需求、性能性需求、可靠性需求和成本限制。
- 架构和概要设计:包括系统层次、剖面或模块的划分,系统软硬件交互界面的布局,硬件和元器件的选择,软件方案的选择,以及系统成本和性能的平衡。
- 详细设计和开发:具体实施硬件开发和软件开发。
- 测试反馈:每个环节都需要进行测试和反馈,以减少出现重大问题或故障的可能性。
- 嵌入式系统的开发过程通常包括以下阶段:
第二章
- Cortex-M3内核的总线类型:
- Cortex-M3内核采用哈佛架构,因此它具有两条主要的总线:
- I-Code 指令总线:用于指令访问。
- D-Code 数据总线:用于数据访问。
- 系统总线:用于内从和外设,即SRAM、片上外设、片外RAM、片外扩展设备以及系统级存储区。。
- 外设总线
- Cortex-M3内核采用哈佛架构,因此它具有两条主要的总线:
- Cortex-M3预定义的存储器空间分为以下几个部分:
- 代码区:用于存放程序代码。
- 片上SRAM区:内部SRAM存储区,通常用于存放临时数据。
- 片上外设
- 片外RAM区:用于连接外部RAM设备。
- 片外外设:用于连接外部设备,如传感器或其他外围设备。
- 内部私有外设总线
- 外部私有外设总线
- 系统控制空间:包含了处理器的控制和状态寄存器。
- Cortex-M3的工作模式和工作等级:
- Cortex-M3主要有两种工作模式:
- 处理器模式:包括Thread模式(线程模式)和Handler模式(处理器模式)。
- 特权级别:分为特权级和用户级。
- 这些模式和特权级别可以根据需要进行组合,以适应不同的操作和安全要求,除了用户级+handler模式。
- Cortex-M3主要有两种工作模式:
- 中断的定义及处理过程:
- 中断定义:中断是一种机制,允许外部或内部事件打断处理器的正常执行流程,并迅速响应这些事件。
- 中断处理过程:
- 当中断发生时,处理器当前的状态被保存。
- 接着,处理器跳转到与该中断相关联的中断服务例程(ISR)。
- 在ISR执行完毕后,处理器状态被恢复,继续执行中断之前的操作。
第三章
习题1: STM32最小系统由哪些部分组成?
STM32最小系统,也称为嵌入式核心控制模块,主要由以下部分组成:
- 电源:为整个系统提供所需的电能。
- 时钟:提供系统运行所需的时钟信号。
- 复位电路:用于初始化系统,确保系统从已知状态开始运行。
- 存储系统:包括必要的存储单元,如Flash存储和RAM。
- 调试系统:用于程序的下载和调试,通常包括JTAG接口等。
习题2: STM32的低功耗模式有哪些? 各模式的区别是什么?
STM32具有三种低功耗模式,各自特点如下:
- 休眠模式(Sleep Mode):
- CPU停止工作,所有外设继续运行。
- 在中断或事件发生时可唤醒CPU。
- 1.8V区域的调压器保持工作状态。
- 停止模式(Stop Mode):
- 旨在以最小的功耗保持SRAM和寄存器内容。
- 1.8V区域的时钟停止工作,PLL、HSI和HSE的RC振荡器被禁用。
- 可由外部中断源、PVD输出、RTC闹钟或USB唤醒信号退出此模式。
- 待机模式(Standby Mode):
- 追求最小的功耗,内部调压器关闭,1.8V区域断电。
- 除备份寄存器和待机电路外,SRAM和寄存器内容会丢失。
- RTC、IWDG和相关时钟源不会停止。
- 可由外部复位、IWDG复位、WKUP引脚的上升沿或RTC闹钟到时退出此模式。
第五章
- GPIO的输入、输出的模式有哪些?各模式有哪些特点?
- 输入模式:
- 浮空输入(GPIO_Mode_IN_FLOATING):输入端无确定电平,状态由外部输入决定。
- 上拉输入(GPIO_Mode_IPU):输入端默认高电平,可读取外部低电平。
- 下拉输入(GPIO_Mode_IPD):输入端默认低电平,可读取外部高电平。
- 模拟输入(GPIO_Mode_AIN):用于ADC采集,不经过施密特触发器。
- 输出模式:
- 开漏输出(GPIO_Mode_Out_OD):只有N-MOS管工作,适合电流型驱动。
- 推挽输出(GPIO_Mode_Out_PP):N-MOS和P-MOS管都工作,能输出高低电平。
- 复用开漏输出(GPIO_Mode_AF_OD):GPIO复用为其他外设,输出取决于外设。
- 复用推挽输出(GPIO_Mode_AF_PP):类似推挽输出,但用于复用功能。
- 输入模式:
- GPIO的初始化需要配置哪些参数,各参数都有哪些取值?
- 配置参数:
- 引脚号(GPIO_Pin):指定具体的GPIO引脚。
- 输出速度(GPIO_Speed):2MHz、10MHz、50MHz。
- 模式(GPIO_Mode):输入、输出、复用输入、复用输出等。
- 取值范围:根据具体硬件和需求选择合适的引脚号、速度和模式。
- 配置参数:
- IO端口的重映射的含义是什么?
- 重映射是指将某些复用功能从其默认引脚映射到其他引脚上。这允许在不同器件封装或设计需求下,优化IO资源的使用。
- STM32外部中断/事件控制器能检测多少个事件/中断? 控制器的主要特征有哪些? 外部中的触发方式有哪些?
- STM32的外部中断/事件控制器可以检测19个事件/中断。
- 主要特征:
- 每个中断/事件都有独立的触发和屏蔽。
- 支持上升沿、下降沿或双边沿触发。
- 可屏蔽中断通道和可编程优先级。
- 触发方式:上升沿、下降沿、双边沿触发。
- 用1个按键控制LED灯,共4个LED灯,按键使用外部中断,按键按1次为模式1,按2次为模式2按键3次为模式1,按4次为模式2,依次循环,模式1中4个LED灯同步闪烁,模式2中4个LED构成流水灯。
- 实现思路:
- 使用外部中断读取按键输入,记录按键次数。
- 设定两种模式:模式1(同步闪烁),模式2(流水灯效果)。
- 根据按键次数切换模式,1次和3次为模式1,2次和4次为模式2。
- 在模式1下,所有LED同时闪烁。在模式2下,LED依次点亮形成流水灯效果。
- 使用定时器控制LED的点亮和熄灭,以实现闪烁和流水灯效果。
- 实现思路:
第六章
- STM32F103x的定时器类型及其区别:
- 高级定时器: 包括TIM1和TIM8,特点是能产生三对PWM互补输出,常用于电动机控制。它们具备多种功能,如输入捕获、输出比较、PWM生成、死区时间可编程的互补输出等。
- 通用定时器: 包括TIM2至TIM5,这些定时器位于低速的APB1总线上,具备输入捕获、输出比较、PWM生成等功能。
- 基本定时器: 包括TIM6和TIM7,主要用于产生DAC触发信号,其时钟由APB1输出产生。
- 看门狗定时器
- 系统嘀嗒定时器
- 通用定时器的计数模式:
- 向上计数模式: 计数器从0计数到设定值,然后重新从0开始计数并触发溢出事件。
- 向下计数模式: 计数器从设定值开始向下计数到0,然后重新从设定值向下计数,并触发溢出事件。
- 中央对齐模式(向上/向下计数): 计数器从0计数到设定值-1,触发溢出事件,然后向下计数到1,触发下溢事件,再从0重新开始计数。
- 输入捕获和输出比较模式的功能:
- 输入捕获模式: 在此模式下,当检测到ICx信号上的边沿后,计数器的当前值被锁存到捕获/比较寄存器中。此模式用于测量输入信号的周期和频率。
- 输出比较模式: 此模式用于控制输出波形或指示特定时间段的结束。当计数器值与捕获/比较寄存器的内容相同时,根据预设的模式,输出引脚可以改变状态或产生中断。
第七章
1. 常用的ADC类型及特点与应用场景
- 积分型ADC
- 特点:使用积分器将输入电压转换成数字表示,具有较长的积分时间和较高的分辨率,但速度较慢。
- 应用场景:适用于需要高精度测量的仪表,如数字电压计。
- 逐次比较型ADC(SAR ADC)
- 特点:结构包含采样保持电路、逐次逼近寄存器和DAC,低功耗、高分辨率、高精度,但采样速率较低。
- 应用场景:适用于高分辨率、低速的系统及设备。
- 并行比较型ADC/串并行比较型ADC
- 特点:具有极高的转换速率,但电路规模大、价格高。
- 应用场景:适用于视频AD转换等需要高速转换的领域。
- Σ-Δ调制型ADC
- 特点:将输入电压转换成时间信号,利用过采样和Σ-Δ调制技术获得高分辨率,但转换速度较慢。
- 应用场景:适用于音频、图像处理和通信等领域。
- 电容阵列逐次比较型ADC
- 特点:采用电容矩阵,实现高精度的单片ADC,成本较低。
- 应用场景:多用于SAR ADC,适用于需要高精度和成本效益的应用。
- 压频变换型ADC
- 特点:通过将模拟信号转换成频率,再转换成数字量,具有高分辨率和低功耗。
- 应用场景:适合需要高分辨率和低功耗的应用,如特定的测量设备。
2. ADC的主要技术指标及含义
- 转换范围:ADC能够转换的模拟电压范围。
- 分辨率:ADC所能分辨的最小量化信号能力。
- 绝对精度:表示转换误差,通常用位数表示。
- 转换时间和转换率:完成一次A/D转换所需的时间和每秒转换次数。
- 量化误差:由于有限分辨率引起的误差。
- 偏移误差:输入信号为零时输出信号不为零的值。
- 满刻度误差:满度输出时输入信号与理想输入信号之差。
- 线性度:转换器转移函数与理想直线的最大偏移。
3. STM32的ADC类型及主要特征
- 类型:STM32的ADC属于逐次比较型(SAR ADC)。
- 主要特征:12位分辨率,支持单次和连续转换模式,具有自动扫描和自校准功能,支持多种采样时间设定,具备规则和注入组转换选项。
4. STM32的ADC通道数及可测量的信号
- 通道数:共有18个通道。
- 可测量的信号:包括16个外部信号源和2个内部信号源(参考电压、温度传感器和电池电压)。
5. STM32的ADC规则组和注入组的区别
- 规则组:由多达16个转换组成,可用于常规连续测量。
- 注入组:由多达4个转换组成,用于特定条件下的快速转换,例如响应外部事件。
6. STM32的ADC采样时间及其与转换时间的关系
- 采样时间:STM32的ADC使用若干个ADC时钟周期对输入电压进行采样,采样周期数目可通过寄存器设置。
- 关系:总的转换时间由采样时间和一个固定的转换时间组成。例如,当ADC时钟为14MHz时,采样时间为1.5个周期,总转换时间为1.5 + 12.5 = 14个周期,即1微秒。
第九章
- STM32的USART传输方式及引脚
- 传输方式:STM32的USART(Universal Synchronous/Asynchronous Receiver/Transmitter)是一个全双工的通用同步/异步串行收发模块,因此,它使用串行传输。
- 引脚:USART双向通信至少需要两个引脚,分别为接收数据输入(RX)和发送数据输出(TX)。
对于具体的引脚,USART接口通常至少包括以下几个引脚:
- TX(Transmit Data):用于发送数据的串行传输线。
- RX(Receive Data):用于接收数据的串行传输线。(重点记忆)
- CK(Clock):在同步模式下使用,为串行通信提供时钟同步信号。
- CTS(Clear To Send):流控信号,用于指示USART可以发送数据。
- RTS(Request To Send):流控信号,用于请求从远端设备接收数据。
- S表示synchronous 同步的;A表示asynchronous 异步的
- USART的收发模块包含的部分
- USART收发模块主要分为三大部分:时钟发生器、数据发送器和接收器。
- USART初始化时配置的参数
- 初始化时配置的参数主要包括:波特率、IO口的模式设置、数据位长度、停止位和奇偶校验位等。
- STM32的SPI传输方式及引脚
- 传输方式:SPI(Serial Peripheral Interface)是一种高速的、全双工、同步的通信总线,因此它使用串行传输。
- 引脚:文档中未提及SPI具体的引脚数量,但一般情况下SPI接口包括MISO(Master In Slave Out)、MOSI(Master Out Slave In)、SCK(Serial Clock)和SS(Slave Select)等几个主要引脚。
- SPI的主要特点及工作方式
- 主要特点:SPI可以同时发出和接收串行数据,可作为主机或从机工作,提供频率可编程时钟,具有发送结束中断标志、写冲突保护和总线竞争保护等特点。
- 工作方式:STM32的SPI支持最高18Mhz的时钟,支持DMA,并且可以配置为SPI协议或者I2S协议。配置步骤包括配置相关引脚的复用功能,设置SPI工作模式,以及使能SPI。
and:
- 高速的数据传输:SPI总线可以实现高速的串行数据传输。
- 简单的硬件连接:SPI总线只需要少量的引脚连接即可实现通信。
- 支持全双工通信:SPI总线可以同时进行数据的发送和接收。
- 支持多从设备:SPI总线可以连接多个从设备,通过片选线选择与主设备进行通信的从设备。
- SPI总线的工作方式主要有以下几种:
- 主从模式:一个设备作为主设备,控制通信的时序和数据传输;其他设备作为从设备,根据主设备的指令进行数据的发送和接收。
- 简单主从模式:主设备只发送数据,从设备只接收数据。
- 简单从主模式:主设备只接收数据,从设备只发送数据。
- 多主模式:多个主设备共享同一个SPI总线,通过片选线选择与从设备进行通信的主设备。
- SPI初始化时配置的参数
- SPI模式:主模式或从模式。
- 数据位长度:每个数据帧的位数。
- 时钟分频系数:控制时钟频率的分频系数。
- 时钟极性和相位:控制时钟信号的极性和相位。
- 数据传输顺序:高位先传输还是低位先传输。
- NSS信号模式:NSS信号的工作模式,可以是硬件控制或软件控制。
- CRC校验:是否启用CRC校验。
- 中断使能:是否允许SPI中断。
- 数据发送、接收缓冲区:用于存储发送和接收数据的缓冲区。
- 使能SPI功能:使能SPI总线的功能。
- STM32的I2C传输方式及引脚
- 传输方式:I2C(Inter-Integrated Circuit)是一种串行通信协议,主要用于连接低速设备,如传感器、存储器等。
- 引脚:I2C使用两个引脚进行通信,分别为数据引脚(SDA)和时钟引脚(SCL)。
- I2C初始化时配置的参数
- I2C时钟速度:控制I2C总线的时钟频率。
- I2C模式:主模式或从模式。
- I2C地址模式:7位地址模式或10位地址模式。
- I2C地址:用于识别设备的地址。
- I2C中断使能:是否允许I2C中断。
- I2C自动ACK:是否启用自动应答功能。
- I2C DMA使能:是否使用DMA进行数据传输。
- I2C数字滤波器使能:是否启用数字滤波器。
- I2C的工作模式
- 从发送模式
- 从接收模式
- 主发送模式
- 主接收模式
- I2C通信的流程和时序
- 通信流程:I2C通信通常开始于主设备发出起始信号,然后发送设备地址和操作位(读/写),之后进行数据传输,最后由主设备发出结束信号来结束通信。
- 时序:在传送数据过程中,I2C总线有三种类型的信号,分别是开始信号、结束信号和应答信号。其中,起始信号是必需的,而结束信号和应答信号可以不要。
具体:
- 主设备发送起始信号(Start)。
- 主设备发送从设备的地址和读/写指令。
- 从设备发送应答信号(ACK)。
- 主设备发送数据或读取数据。
- 从设备发送应答信号(ACK)。
- 可选:主设备可以发送重复启动信号(Repeated Start)。
- 主设备发送从设备的地址和读/写指令。
- 从设备发送应答信号(ACK)。
- 主设备发送数据或读取数据。
- 从设备发送应答信号(ACK)或非应答信号(NACK)。
- 主设备发送停止信号(Stop)。
留下评论