基于stm32的考试题目 下载本文

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 个可编程的优先等级。 ? 可实现低延迟的异常和中断处理。 ? 具有电源管理控制。 ? 系统控制寄存器的实现。

四、编程题

13.7 习题

一、填空题

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

- 21 -

C.BTR 三、简答题

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

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

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

D.以上都不是

15.6 习题

一、填空题

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;

- 22 -

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);

16.5 习题

一、填空题

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 输入模式

- 23 -

C.编码器接口模式 三、简答题

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

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

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

D.单脉冲模式(OPM)

17.7 习题

一、填空题

1.STM32系列ARM Cortex-M3芯片支持三种复位形式,分别为 系统 复位、 电源 复位和 备份区域 复位。

2.STM32还提供了用户可通过多个预分频器,可用来进一步配置 AHB 、高速 APB(APB2) 和低速 APB(APB1) 域的频率。

3.用户可用通过 32.768k Hz外部振荡器,为系统提供更为精确的主时钟。在时钟控制寄存器 RCC_CR 中的 HSERDY 位用来指示高速外部振荡器是否稳定。

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

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

6.当STM32复位后, HSI振荡器 将被选为系统时钟。当时钟源被直接或通过PLL 间接作为系统时钟时,它将不能被 停止 。只有当 目标时钟源 准备就绪了(经过启动稳定阶段的延迟或PLL 稳定),才可以从一个时钟源切换到另一个时钟源。在被选择时钟源没有就绪时,系统时钟的切换 不会发生 。

二、选择题

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 D.以2分频的PLL 时钟

三、简答题

1.简述STM32复位的类型。

答:STM32系列ARM Cortex-M3芯片支持三种复位形式,分别为系统复位、电源复位和备份区域复位。

2.简述STM32时钟的类型。 - 24 -

答: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” 以确认写操作已经完成。

19.5 习题

一、填空题

1.在STM32中,备份寄存器是 16 位的寄存器,共 10 个,可以用来存储 20 个字节的用户应用程序数据。

2.备份寄存器位于 备份域 里,当 主电源VDD 被切断,他们仍然由 VBAT 维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们 也不会 被复位。

3.STM32的备份寄存器还可以用来实现 RTC 校准功能。为方便测量,32.768kHz的RTC

时钟可以输出到 侵入检测 引脚上。通过设置RTC 校验寄存器(BKP_RTCCR)的 CCO 位来开启这一功能。

4.当STM32的 ANTI_TAMP 引脚上的信号发生跳变时,会产生一个侵入检测事件,这将使所有数据备份寄存器 复位 。

5.ST公司还提供了完善的备份寄存器接口库函数,其位于 stm32f10x_bkp.c ,对应的头文件为 stm32f10x_bkp.h 。

二、选择题

1.在STM32中,备份寄存器是( A )的寄存器。 A.16 位 B.32 位 C.8 位 D.4 位

2.为了允许访问备份寄存器和RTC,电源控制寄存器(PWR_CR)的DBP 位必须置为( A )。 A.1 B.2 C.0 D.3 3.下列哪个不是备份寄存器( C )。 A.BKP_DR1 B.BKP_DR3 C.BKP_RTCCR D.BKP_DR5

- 25 -