STM32考试习题及答案 下载本文

STM32考试习题及答案

一、填空题

1.当STM32的I/O端口配置为输入时, 输出缓冲器 被禁止, 施密特触发输入 被激活。根据输入配置(上拉,下拉或浮动)的不同,该引脚的 弱上拉和下拉电阻 被连接。出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对 输入数据寄存器 的读访问可得到I/O状态。

2.STM32的所有端口都有外部中断能力。当使用 外部中断线 时,相应的引脚必须配置成 输入模式 。

3.STM32具有单独的位设置或位清除能力。这是通过GPIOx_BSRR 和 GPIOx_BRR 寄存器来实现的。

4.ST公司还提供了完善的通用IO接口库函数,其位于 stm32f10x_gpio.c ,对应的头文件为 stm32f10x_gpio.h 。

5.为了优化不同引脚封装的外设数目,可以把一些 复用功能 重新映射到其他引脚上。这时,复用功能不再映射到 它们原始分配的引脚 上。在程序上,是通过设置 复用重映射和调试I/O配置寄存器(AFIO_MAPR) 来实现引脚的重新映射。

二、选择题

1.在APB2上的I/O脚的翻转速度为( A )。 A.18MHz B.50MHz C.36MHz D.72MHz

4.当输出模式位MODE[1:0]=“10”时,最大输出速度为( B )。 A.10MHz B.2MHz C.50MHz D.72MHz 三、简答题

1.简述不同复用功能的重映射。

答:为了优化不同引脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。这时,复用功能不再映射到它们原始分配的引脚上。在程序上,是通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)来实现引脚的重新映射。各个复用功能的重映射可以参阅正文的介绍,由于内容比较多,正文介绍非常详细,这里省略。

2.简述STM32的GPIO的一些主要特点(至少5个)。 答:主要特点如下:

? 通用I/O,可以作为输出、输入等功能。 ? 单独的位设置或位清除。 ? 外部中断/唤醒线。

? 复用功能(AF)和重映射。 ? GPIO锁定机制。

四、编程题

编写一个初始化定时器的程序。

答:由于还没有讲到定时器相关的知识,所以这里旨在让读者给出定时器对GPIO端口的设置要求,程序示例如下:

GPIO_InitTypeDef GPIO_InitStructure;

/* GPIOC Configuration: Pin6, 7, 8 and 9 in Output */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 |GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOC, &GPIO_InitStructure);

一、填空题

1.STM32芯片内部集成的 12 位ADC是一种逐次逼近型模拟数字转换器,具有 18 个通道,可测量 16 个外部和 2 个内部信号源。

2.在STM32中,只有在 规则通道 的转换结束时才产生DMA请求,并将转换的数据从 ADC_DR 寄存器传输到用户指定的目的地址。

3.在有两个ADC的STM32器件中,可以使用 双ADC 模式。在 双ADC 模式里,根据 ADC_CR1 寄存器中 DUALMOD[2:0] 位所选的模式,转换的启动可以是ADC1主和ADC2从的交替触发或同时触发。

4.ADC的校准模式通过设置 ADC_CR2 寄存器的 CAL 位来启动。 5.在STM32中, ADC_CR2 寄存器的 ALIGN 位选择转换后数据储存的对齐方式。

6.在STM32内部还提供了 温度传感器 ,可以用来测量器件周围的温度。温度传感器在内部和 ADC_IN16 输入通道相连接,此通道把传感器输出的电压转换成数字值。内部参考电压 VREFINT 和 ADC_IN17 相连接。

二、选择题

1.哪些是STM32的ADC系统的特点(多选)( ABCD )。 A.12-位分辨率 B.自校准 C.可编程数据对齐 D.单次和连续转换模式

2.在ADC的扫描模式中,如果设置了DMA位,在每次EOC后,DMA控制器把规则组通道的转换数据传输到( A )中。

A.SRAM B.Flash C.ADC_JDRx寄存器 D.ADC_CR1 3.STM32规则组由多达( A )个转换组成。 A.16 B.18 C.4 D.20 4.在STM32中,( A )寄存器的ALIGN位选择转换后数据储存的对齐方式。 A.ADC_CR2 B.ADC_JDRx C.ADC_CR1 D.ADC_JSQR

三、简答题

1.简述STM32的ADC系统的功能特性。

答:STM32的ADC系统的主要功能特性包括如下几个方面:ADC开关控制、ADC时钟、ADC通道选择、ADC的转换模式、中断、模拟看门狗、ADC的扫描模式、ADC的注入通道管理、间断模式、ADC的校准模式、ADC的数据对齐、可编程的通道采样时间、外部触发转换、DMA请求、双ADC模式和温度传感器。

2.简述STM32的双ADC工作模式。

答:在有两个ADC的STM32器件中,可以使用双ADC模式。在双ADC模式里,根据ADC_CR1寄存器中DUALMOD[2:0]位所选的模式,转换的启动可以是ADC1主和ADC2从的交替触发或同时触发。双ADC工作模式主要包括如下几种:同时注入模式、同时规则模式、快速交替模式、慢速交替模式、交替触发模式和独立模式。

一、填空题 1.STM32的 嵌套向量中断控制器(NVIC) 管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现 低延迟 的中断处理,并有效地处理 晚到 中断。

2.STM32的外部中断/事件控制器(EXTI)由 19 个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置 输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发) 。每个输入线都可以被独立的屏蔽。 挂起寄存器 保持着状态线的中断要求。

3.STM32的EXTI线16连接到 PVD输出 。 4.STM32的EXTI线17连接到 RTC闹钟事件 。 5.STM32的EXTI线18连接到 USB唤醒事件 。

二、选择题

1.ARM Cortex-M3不可以通过( D )唤醒CPU。 A.I/O端口 B.RTC 闹钟 C.USB唤醒事件 D.PLL

2.STM32嵌套向量中断控制器(NVIC) 具有( A ) 个可编程的优先等级。 A.16 B.43 C.72 D.36

3.STM32的外部中断/事件控制器(EXTI)支持( C )个中断/事件请求。 A.16 B.43 C.19 D.36 三、简答题

1.简述嵌套向量中断控制器(NVIC)的主要特性。

答:STM32的嵌套向量中断控制器(NVIC) 管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现低延迟的中断处理,并有效地处理晚到的中断。STM32嵌套向量中断控制器(NVIC)的主要特性如下:

? 具有43 个可屏蔽中断通道(不包含16 个Cortex-M3 的中断线)。 ? 具有16 个可编程的优先等级。 ? 可实现低延迟的异常和中断处理。 ? 具有电源管理控制。 ? 系统控制寄存器的实现。

一、填空题

1.STM32的 USART 为通用同步异步收发器,其可以与使用工业标准 NRZ 异步串行数据格式的外部设备之间进行全双工数据交换。

2.STM32的USART可以利用 分数波特率 发生器提供宽范围的波特率选择。 3.智能卡是一个 单线半双工 通信协议,STM32的智能卡功能可以通过设置USART_CR3寄存器的 SCEN 位来选择。

4.STM32提供了CAN总线结构,这是一种 基本扩展 CAN(Basic Extended CAN),也就是 bxCAN 。

二、选择题

1.STM32的USART根据( A )寄存器M位的状态,来选择发送8位或者9位的数据字。

A.USART_CR1 B.USART_CR2 C.USART_BRR D.USART_CR3 2.STM32的bxCAN的主要工作模式为( ABD )。 A.初始化模式 B.正常模式 C.环回模式 D.睡眠模式

3.在程序中,可以将CAN_BTR寄存器的( AB )位同时置1,来进入环回静默模式。(多选)

A.LBKM B.SILM C.BTR D.以上都不是

三、简答题

1.简述STM32的USART的功能特点。、

答:STM32的USART为通用同步异步收发器,其可以与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART还可以利用分数波特率发生器提供宽范围的波特率选择。

STM32的USART支持同步单向通信和半双工单线通信。同时,其也支持LIN(局部互连网),智能卡协议和IrDA(红外数据)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。STM32还具备多处理器通信能力。另外,通过多缓冲器配置的DMA方式,还可以实现高速数据通信。

一、填空题 1.系统计时器(SysTick)提供了1个 24位、降序、零约束、写清除 的计数器,具有灵活的控制机制。

2.STM32的通用定时器TIM,是一个通过 可编程预分频器 驱动的 16 位自动装载计数器构成。

3.STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为 向上计数 模式、 向下计数 模式和 中央对齐 模式。

4.ST公司还提供了完善的TIM接口库函数,其位于 stm32f10x_tim.c ,对应的头文件为 stm32f10x_tim.h 。

二、选择题

1.通用定时器TIMx的特性( ABCD )。(多选)

A.具备16位向上,向下,向上/向下自动装载计数器。 B.具备16位可编程预分频器。 C.具备4个独立通道。

D.可以通过事件产生中断,中断类型丰富,具备DMA功能。 2.通用定时器TIMx的特殊工作模式包括( ABCD )。(多选) A.输入捕获模式 B.PWM 输入模式 C.输出模式 D.单脉冲模式(OPM) 3.STM32的可编程通用定时器的时基单元包含( ABC )。(多选) A.计数器寄存器(TIMx_CNT) B.预分频器寄存器(TIMx_PSC) C.自动装载寄存器(TIMx_ARR) D.以上都不是 三、简答题

1.简述STM32TIM的计数器模式。

答:STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为向上计数模式、向下计数模式和中央对齐模式(向上/向下计数)。

四、编程题

给出PWM模式下配置TIM外设的程序代码。 答:

/* Time Base configuration */

TIM_TimeBaseStructure.TIM_Prescaler = 0;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = 4095; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

/* Channel 1, 2,3 and 4 Configuration in PWM mode */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_Pulse = CCR1_Val;

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;

TIM_OC1Init(TIM1, &TIM_OCInitStructure);

TIM_OCInitStructure.TIM_Pulse = CCR2_Val; TIM_OC2Init(TIM1, &TIM_OCInitStructure);

TIM_OCInitStructure.TIM_Pulse = CCR3_Val; TIM_OC3Init(TIM1, &TIM_OCInitStructure);

TIM_OCInitStructure.TIM_Pulse = CCR4_Val; TIM_OC4Init(TIM1, &TIM_OCInitStructure);

/* TIM1 counter enable */ TIM_Cmd(TIM1, ENABLE);

/* TIM1 Main Output Enable */ TIM_CtrlPWMOutputs(TIM1, ENABLE);

一、填空题

1.除了通用定时器外,STM32还提供了一个高级控制定时器 TIM1 。 TIM1 由一个 16 位的自动装载计数器组成,它由一个 可编程预分频器 驱动。

2.TIM1的 溢出/下溢时更新事件(UEV) 只能在重复向下计数达到0的时候产生。这对于能产生PWM信号非常有用。

3.TIM1具备 16 位可编程预分频器,时钟频率的分频系数为 1~65535 之间的任意数值。

4.ST公司还提供了完善的TIM1接口库函数,其位于 stm32f10x_tim1.c ,对应的头文件为 stm32f10x_tim1.h 。

二、选择题

1.STM32的可编程TIM1定时器的时基单元包含( ABCD )。(多选) A.计数器寄存器(TIM1_CNT) B.预分频器寄存器 (TIM1_PSC) C.自动装载寄存器 (TIM1_ARR) D.周期计数寄存器 (TIM1_RCR)

2.高级定时器TIM1的特性( ABCD )。(多选) A.具备16位上,下,上/下自动装载计数器 B.具备16位可编程预分频器。

C.可以在指定数目的计数器周期之后更新定时器寄存器。 D.可以通过事件产生中断,中断类型丰富,具备DMA功能。 3.定时器TIM1的特殊工作模式包括( ABCD )。(多选) A.输入捕获模式 B.PWM 输入模式 C.编码器接口模式 D.单脉冲模式(OPM) 三、简答题

1.简述STM32的高级控制定时器TIM1的结构。

答:STM32提供了一个高级控制定时器(TIM1)。TIM1由一个16位的自动装载计数器组成,它由一个可编程预分频器驱动。TIM1适合多种用途,包含测量输入信号的脉冲宽度,或者产生输出波形。使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。

高级控制定时器TIM1和通用控制定时器TIMx是完全独立的,它们不共享任何资源,因此可以同步操作。

1.STM32的DMA 控制器有 7 个通道,每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个 仲裁器 来协调各个DMA 请求的优先权。

2.在DMA处理时,一个事件发生后,外设发送一个请求信号到 DMA控制器 。DMA 控制器根据通道的 优先权 处理请求。

3.DMA控制器的每个通道都可以在有固定地址的 外设寄存器和存储器地址

之间执行DMA传输。DMA传输的数据量是可编程的,可以通过 DMA_CCRx 寄存器中的 PSIZE 和 MSIZE 位编程。

4.ST公司还提供了完善的DMA接口库函数,其位于 stm32f10x_dma.c ,对应的头文件为 stm32f10x_dma.h 。

5.在STM32中,从外设(TIMx、ADC、SPIx、I2Cx 和USARTx)产生的7个请求,通过逻辑 与 输入到DMA控制器,这样同时 只能有一 个请求有效。

二、选择题

1.STM32提供了三种不同的时钟源,其都可被用来驱动系统时钟SYSCLK,这三种时钟源分别为( ABC )。

A.HSI振荡器时钟 B.HSE振荡器时钟 C.PLL时钟 D.HLI振荡时钟 2.在STM32中,当( AB )发生时,将产生电源复位。(多选) A.从待机模式中返回 B.上电/掉电复位(POR/PDR复位) C.NRST管脚上的低电平 D.PLL 3.,以下哪个时钟信号可被选作MCO 时钟( ABCD )。(多选) A.SYSCLK B.HSI C.HSE

2.简述STM32时钟的类型。

答:STM32提供了三种不同的时钟源,其都可被用来驱动系统时钟SYSCLK,这三种时钟源分别为:

? HSI振荡器时钟 ? HSE振荡器时钟 ? PLL时钟

这三种时钟源还可以有以下2种二级时钟源:

? 32kHz低速内部RC,可以用于驱动独立看门狗和RTC。其中,RTC用于从停机/

待机模式下自动唤醒系统。

? 32.768kHz低速外部晶振也可用来驱动RTC(RTCCLK)。 任一个时钟源都可被独立地启动或关闭,这样可以通过关闭不使用的时钟源来优化整个系统的功耗。

3.简述STM32实时时钟RTC的配置步骤。 答:在程序中,配置RTC寄存器步骤如下:

(1)查询RTC_CR 寄存器中的RTOFF位,直到RTOFF的值变为“1”,表示前一次写操作结束。

(2)置CNF值为1,进入配置模式。

(3)对一个或多个RTC 寄存器进行写操作。 (4)清除CNF 标志位,退出配置模式。

(5)查询RTOFF,直至RTOFF 位变为“1” 以确认写操作已经完成。