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

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