stm32试题库 下载本文

内容发布更新时间 : 2024/5/19 13:36:34星期一 下面是文章的全部内容请认真阅读。

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

28.STM32系列ARM Cortex-M3芯片支持三种复位形式,分别为 复位、 复位和 复位。

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

30.用户可用通过 Hz外部振荡器,为系统提供更为精确的主时钟。在时钟控制寄存器 中的 位用来指示高速外部振荡器是否稳定。 31.ST公司还提供了完善的RCC接口库函数,其位于 ,对应的头文件为 。

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

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

34.备份寄存器位于 里,当 被切断,他们仍然由 维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们 被复位。 35.STM32的备份寄存器还可以用来实现 校准功能。为方便测量,32.768kHz

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

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

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

38.STM32的DMA 控制器有 个通道,每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个 来协调各个DMA 请求的优先权。 39.在DMA处理时,一个事件发生后,外设发送一个请求信号到 。DMA 控制器根据通道的 处理请求。

40.DMA控制器的每个通道都可以在有固定地址的 和 之间执行DMA传输。DMA传输的数据量是可编程的,可以通过 寄存器中的 和 位编程。

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

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

四、简答题

1、什么是嵌入式系统?嵌入式系统一般由哪几部分构成? 2、ARM v7的体系结构可以分为哪几个子版本(款式),分别应用在什么领域?

3、Cortex-M3的处理器有那两种工作模式和状态?如何进行工作模式和状态的切换? 4、Cortex-M3的存储空间可以分为哪几个部分,每一部分的地址范围是怎样的? 5、什么是位绑定区、位绑定别名区?它们有怎样的关系?

6、基于CMSIS标准的软件架构分为那几层?其中的CMSIS层一般由哪几部分组成?

7、简述STM32固件库命名规则。 8、STM32共有那几种基本时钟信号? 9、简述设置系统时钟的基本流程。

10、STM32的GPIO的配置模式有那几种?如何进行配置模式的配置? 11、简述STM32的不同复用功能的重映射功能。 12、简述嵌套向量中断控制器(NVIC)的主要特性。 13、简述STM32的优先级划分与抢占的过程。 14、简述STM32的USART的功能特点。 15、如何设置STM32的串口的波特率。 16、STM32高级定时器有哪些功能?

17、已知STM32的系统时钟为72MHz,如何设置相关寄存器,实现20ms定时? 18、简述DMA控制器的基本功能。 19、、请描述DMA通道的工作模式、工作原理。 20、简述STM32的ADC系统的功能特性。 21、简述STM32的双ADC工作模式。

五、编程与应用题

1、在一个STM32点亮LED的程序中,部分代码如下: void GPIO_Configuration(void) {

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); } …

while (1) { /*循环点亮LED*/ GPIO_WriteBit(GPIOA, GPIO_Pin_2, (BitAction)0x01); //① Delay(0XFFFFF); GPIO_WriteBit(GPIOA, GPIO_Pin_2, (BitAction)0x00); //② Delay(0XFFFFF); GPIO_WriteBit(GPIOA, GPIO_Pin_3, (BitAction)0x01); //③ Delay(0XFFFFF); GPIO_WriteBit(GPIOA, GPIO_Pin_3, (BitAction)0x00); //④ Delay(0XFFFFF); }

(1)简述GPIO_Configuration函数对IO接口配置的步骤;

(2)分析该程序,LED分别连接在哪些IO引脚上,当引脚输出高电平时,是点亮还是熄灭LED?

(3)分析循环点亮LED代码,补充相应的注释。 (4)库函数GPIO_SetBits和GPIO_ResetBits的原形如下,用这两个函数重写循环点亮LED

代码。

2、利用STM32的GPIO接口及其操作,实现4个LED按照LED1、LED2、LED3、LED4的顺序循环显示。硬件连接图如图所示。

3、已知系统时钟为72MHz,采用定时器TIM1产生周期为100ms的定时时间间隔并通过LED发光二极管指示定时过程。

4、下面的程序利用TIM3产生PWM信号。 频率:TIM3CLK = 36MHz,Prescaler = 0x0,得到TIM3 counter clock = 36MHz。TIM3 ARR Register = 999,进而设定TIM3频率 = TIM3 counter clock/(ARR + 1)= 36kHz。 TIM3通道1的占空比 =(TIM3_CCR1/ TIM3_ARR×100 = 50%,通道2、3、4的占空 比分别是37.5%、25%、12.5%。

5、在一个STM32点亮LED的程序中,部分代码如下:

#define RCC_GPIO_LED RCC_APB2Periph_GPIOD #define GPIO_LED_PORT GPIOD

#define GPIO_LED1 GPIO_Pin_2 #define GPIO_LED2 GPIO_Pin_3 #define GPIO_LED3 GPIO_Pin_4 #define GPIO_LED4 GPIO_Pin_7

#define GPIO_LED_ALL GPIO_LED1 |GPIO_LED2 |GPIO_LED3 |GPIO_LED4 ….

void LED_config(void) {

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_GPIO_LED | RCC_APB2Periph_AFIO , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_LED_ALL;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init( ① , ② ); } …

void Led_Turn_on_all(void) { /* Turn On All LEDs */

GPIO_ResetBits(GPIO_LED_PORT, GPIO_LED_ALL); }

void Led_Turn_off_all(void) { /* Turn Off All LEDs */

③ (GPIO_LED_PORT, GPIO_LED_ALL); }

(1)简述LED_config函数对IO接口配置的步骤;

(2)RCC_APB2PeriphClockCmd函数在该程序中的作用是什么? (3)结构体变量GPIO_InitStructure的作用是什么? (4)根据注释,将程序补充完成。