基于stm32的考试题目

发布时间:2013-12-11 16:42:58

STM32习题集

一、选择题

1.Cortex-M处理器采用的架构是( D

Av4T Bv5TE Cv6 Dv7

2.NVIC可用来表示优先权等级的位数可配置为是( D

A2 B4 C6 D8

3.Cortex-M系列正式发布的版本是( A

ACortex-M3 BCortex-M4 CCortex-M6 DCortex-M8

4.Cortex-M3的提供的流水线是( B

A2 B3 C5 D8

5.Cortex-M3的提供的单周期乘法位数是( C

A8 B16 C32 D64

6.STM32处理器的USB接口可达( B

A8Mbit/s B12Mbit/s C16Mbit/s D24Mbit/s

4.下面是Context-M3处理器代码执行方式的是( A

A)特权方式 B)普通方式 CHandle方式 DThread方式

5.下面是Context-M3处理器的工作模式的是( A

AThread模式 BThumb模式 CThumb-2模式 DDebug模式

6.下列是Cortex – M3 处理器可以使用的堆栈的栈是( B

A)线程栈 B)进程栈 C)多线程栈 D)空栈

7.Context – M3处理器的寄存器r14代表( B

A)通用寄存器 B)链接寄存器 C)程序计数器 D)程序状态寄存器

8.Handle模式一般使用( A

AMain_SP BProcess_SP CMain_SPProcess_SP DMain_SPProcess_SP

9.Cortex – M3使用的存储器格式是( D

A)小端格式 B)大端格式 C)小端或大端格式 D)没有正确答案

10.Cortex – M3的存储格式中专用外设总线区域可以使用( A

A)小端格式 B)大端格式 C)小端或大端格式 D)没有正确答案

11.每个通用I/O端口有( )个32位的配置寄存器,( )个32位的数据寄存器,( )个32位的置位/复位寄存器,( )个16位的复位寄存器,( B )个32位的锁定寄存器

A2,1,2,11 B2,2,1,1,1 C2,22,1,1 D2,2,1,2,1

12. A )寄存器的目的就是用来允许对GPIO寄存器进行原子的读/修改操作

AGPIOX_BSRRGPIOX_BRR BGPIOX_CRLGPIOX_CRHCGPIOX_BSRRGPIOX_LCKR DGPIOX_IDRGPIOX_ODR

13.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为( A )时可以是激活的或者非激活的

A)输入 B)输出(C)推挽 D)开漏

14.端口输入数据寄存器的地址偏移为( B

A00H B08HC0CH D04H

16.端口输出数据寄存器的地址偏移为( C

A00H B08HC0CH D04H

17.每个I/O端口位可以自由的编程,尽管I/O端口寄存器必须以( D )的方式访问

A16位字 B16位字节 C32位字节 D32位字

18.固件库中的功能状态(FunctionalState)类型被赋予以下两个值( A

AENABLE或者DISABLE BSET或者RESTE

CYES或者NO DSUCCESS或者ERROR

19.固件库中的标志状态(FlagStatus)类型被赋予以下两个值( C

AENABLE或者DISABLE BSUCCESS或者ERROR

CSET或者RESTE DYES或者NO

20.STM32F107V有( C )可屏蔽中断通道

A40 B50 C60 D70

21.STM32F107V采用( A )位来编辑中断的优先级

A4 B8 C16 D32

22.向量中断控制器最多可支持( C )个IRQ中断

A127 B128 C240 D255

23.系统控制寄存器 NVIC 和处理器内核接口紧密耦合,主要目的是( C

A)结构更紧凑,减小芯片的尺寸

B)连接更可靠,减小出错的概率

C)减小延时,高效处理 最近发生的中断

D)无所谓,没有特别的意思,远一点也没有关系

24.关于中断嵌套说法正确的是( B

A)只要响应优先级不一样就有可能发生中断嵌套

B)只要抢占式优先级不一样就有可能发生中断嵌套

C)只有抢占式优先级和响应优先级都不一才有可能发生中断嵌套

D)以上说法都不对

25.STM32107向量中断控制器管理下,可将中断分为( B )组

A4 B5 C6 D7

26.中断屏蔽器能屏蔽( B

A)所有中断和异常 B)除了NMI外所有异常和中断

C)除了NMI、异常所有其他中断 D)部分中断

27.PWM是( A

28.A)脉冲宽度调制 B)脉冲频率调制 C)脉冲幅度调制 D)脉冲位置调制

29.要想使能自动重装载的预装载寄存器需通过设置TIMx_CR1寄存器的( B )位

AUIF BARPE CUG DURS

30.以下对于STM32 ADC描述正确的是( B

ASTM32 ADC是一个12位连续近似模拟到数字的转换器

BSTM32 ADC是一个8位连续近似模拟到数字的转换器

CSTM32 ADC是一个12位连续近似数字到模拟的转换器

DSTM32 ADC是一个8位连续近似数字到模拟的转换器

31.ADC转换过程不含哪项( D

A)采样 B)量化 C)编码 D)逆采样

32.ADC转换过程正确的是( A

A)采样量化编码(B)量化采样编码

C)采样编码量化(D)编码采样量化

33.下列哪项不是ADC转换器的主要技术指标( B

A)分辨率 B)频率 C)转换速率 D)量化误差

34.以下对STM32F107集成A/D的特性描述不正确的是( B

A12位精度 B)单一转换模式

C)按通道配置采样时间(D)数据对齐方式与内建数据一致

35.以下对STM32F107集成A/D的特性描述正确的是( B

A)供电需求: 2.6V3.8V

B)输入范围:VREF-≤VIN≤VREF+

C)性能线设备的转换时间:28MHz时为1us

D)访问线设备的转换时间:56MHz时为1us

36.以下为STM32GPIO端口配置寄存器的描述,在GPIO控制LED电路设计时,要使最大输出速度为10MHz,应该设置( B

ACNFy[1:0] BMODEy[1:0]

CMODE DCNF

37.以下为GPIO端口配置寄存器的描述,在GPIO控制LED电路设计时,要使最大输出速度为2MHz,应该设置MODE[1:0]值为( C

A00 B01

C10 D11

38.. 已知TIM1定时器的起始地址为0x4001 2C00,则定时器1的捕获/比较寄存器1的地址为( D

A0x4001 2C20 B0x4001 2C2C

C0x4001 2C38 D0x4001 2C34

39.已知TIM1定时器的起始地址为0x4001 2C00,则定时器1的捕获/比较寄存器2的地址为( C

A0x4001 2C20 B0x40012C2C

C0x4001 2C38 D0x4001 2C34

40.SysTick定时器校正值为( B

A9000 B10000

C12000 D15000

41.SysTick定时器的中断号是( C

A4 B5

C6 D7

42.上图中Tamper连接了STM32F10XPC13GPIOPC13通用IO端口映射到外部中断事件线上是( D

AEXTI线14 BEXTI线15

CEXTI线12 DEXTI线13

43.上图中WKUP连接了STM32F10XPA0 GPIOPA0通用IO端口映射到外部中断事件线上是( A

AEXTI线0 BEXTI线1

CEXTI线2 DEXTI线3

44./** @addtogroup Peripheral_registers_structures

* @{

*/

/**

* @brief Analog to Digital Converter

*/

typedef struct

{

__IO uint32_t SR;

__IO uint32_t CR1;

__IO uint32_t CR2;

__IO uint32_t SMPR1;

__IO uint32_t SMPR2;

__IO uint32_t JOFR1;

__IO uint32_t JOFR2;

__IO uint32_t JOFR3;

__IO uint32_t JOFR4;

__IO uint32_t HTR;

__IO uint32_t LTR;

__IO uint32_t SQR1;

__IO uint32_t SQR2;

__IO uint32_t SQR3;

__IO uint32_t JSQR;

__IO uint32_t JDR1;

__IO uint32_t JDR2;

__IO uint32_t JDR3;

__IO uint32_t JDR4;

__IO uint32_t DR;

} ADC_TypeDef;

ADC注入通道数据偏移寄存器有4个,其偏移地址为14H-20HJOFR1的偏移地址为( D

A0x20 B0x1c

C0x18 D0x14

45./** @addtogroup Peripheral_registers_structures

* @{

*/

/**

* @brief Analog to Digital Converter

*/

typedef struct

{

__IO uint32_t SR;

__IO uint32_t CR1;

__IO uint32_t CR2;

__IO uint32_t SMPR1;

__IO uint32_t SMPR2;

__IO uint32_t JOFR1;

__IO uint32_t JOFR2;

__IO uint32_t JOFR3;

__IO uint32_t JOFR4;

__IO uint32_t HTR;

__IO uint32_t LTR;

__IO uint32_t SQR1;

__IO uint32_t SQR2;

__IO uint32_t SQR3;

__IO uint32_t JSQR;

__IO uint32_t JDR1;

__IO uint32_t JDR2;

__IO uint32_t JDR3;

__IO uint32_t JDR4;

__IO uint32_t DR;

} ADC_TypeDef;

ADC注入通道数据偏移寄存器有4个,其偏移地址为14H-20HJOFR2的偏移地址为( B

A0x14 B0x18

C0x1c D0x20

46.Cortex-M3的提供的流水线是( B

A2 B3

C5 D8

47.Contex – M3处理器的寄存器r14代表( B

A)通用寄存器

B)链接寄存器

C)程序计数器

D)程序状态寄存器

48.固件库中的功能状态(FunctionalState)类型被赋予以下两个值( A

AENABLE或者DISABLE

BSET或者RESTE

CYES或者NO

DSUCCESS或者ERROR

49.固件库中的标志状态(FlagStatus)类型被赋予以下两个值( C

AENABLE或者DISABLE

BSUCCESS或者ERROR

CSET或者RESTE

DYES或者NO

50.DMA控制器可编程的数据传输数目最大为( A )。

A65536 B65535

C1024 D4096

51.STM32中,1 DMA请求占用至少( B )个周期的CPU 访问系统总线时间。

A1 B2

C3 D4

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

AUSART_CR1 BUSART_CR2

CUSART_BRR DUSART_CR3

53.下面不属于STM32bxCAN的主要工作模式为( C )。

A.初始化模式 B.正常模式

C.环回模式 D.睡眠模式

54.PC系统机相比嵌入式系统不具备以下哪个特点( C )。

A、系统内核小 B、专用性强

C、可执行多任务 D、系统精简

55.嵌入式系统有硬件和软件部分构成,以下( C )不属于嵌入式系统软件。

A. 系统软件 B. 驱动 C. FPGA编程软件 D. 嵌入式中间件

56.在APB2上的I/O脚的翻转速度为( A )。

A18MHz B50MHz

C36MHz D72MHz

57.当输出模式位MODE[1:0]=10时,最大输出速度为( B )。

A10MHz B2MHz

C50MHz D72MHz

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

ASRAM BFlash

CADC_JDRx寄存器 DADC_CR1

59STM32规则组由多达( A )个转换组成。

A16 B18

C4 D20

60.在STM32中,( A )寄存器的ALIGN位选择转换后数据储存的对齐方式。

AADC_CR2 BADC_JDRx

CADC_CR1 DADC_JSQR

61ARM Cortex-M3不可以通过( D )唤醒CPU

AI/O端口 BRTC 闹钟

CUSB唤醒事件 DPLL

62STM32嵌套向量中断控制器(NVIC) 具有( A 个可编程的优先等级。

A16 B43

C72 D36

64STM32的外部中断/事件控制器(EXTI)支持( C )个中断/事件请求。

A16 B43

C19 D36

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

AUSART_CR1 BUSART_CR2

CUSART_BRR DUSART_CR3

66DMA控制器可编程的数据传输数目最大为(A )。

A65536 B65535

C1024 D4096

67.每个DMA通道具有( A )个事件标志。

A3 B4

C5 D6

68STM32中,1 DMA请求占用至少( B )个周期的CPU 访问系统总线时间。

A1 B2

C3 D4

二、判断题

1.Cortex-M3系列处理器支持Thumb指令集。(

2.Cortex-M3系列处理器支持Thumb-2指令集。(

3.Contex-M3系列处理器内核采用了哈佛结构的三级流水线。(

4.Cortex-M系列不支持Thumb-2指令集。(

5.Contex-M3系列处理器内核采用了冯诺依曼结构的三级流水线。(

6.STM32系列MCU在使用电池供电时,提供3.3~5V的低电压工作能力。(

7.STM32处理器的LQPF100封装芯片的最小系统只需7个滤波电容作为外围器件。( dui

8.Cortex-M3在待机状态时保持极低的电能消耗,典型的耗电值仅为2µA。(

9.当处理器在Thread模式下,代码一定是非特权的。(

10.Context-M3处理器可以使用4个堆栈。(

11.在系统复位后,所有的代码都使用Main栈。(

12.高寄存器可以被所有的32位指令访问,也可以被16位指令访问。(

13.在系统层,处理器状态寄存器分别为:APSRIPSR, PPSR。(

14.APSR程序状态寄存器的28位,当V=0,表示结果为无益处。(

15.Cortex-M3只可以使用小端格式访问代码。(

16.所谓不可屏蔽的中断就是优先级不可调整的中断。( 错)

17.向量中断控制器只负责优先级的分配与管理,中断的使能和禁止和它无关。(

18.Cortex-M3体系架构中,有了位带位操作后,可以使用普通的加载/存储指令来对单一的比特进行读写。对)

19.Cortex-M3体系架构中,有两个区中实现了位带:一个是 SRAM 区的最低 1MB 范围,第二个则是片内外设 区的最低 1MB 范围。对)

20.stm3210xx的固件库中,RCC_DeInit函数是将RCC寄存器重新设置为默认值。对)

21.stm3210xx的固件库中,RCC_PCLK2Config函数是用于设置低速APB时钟。

22.STM32的串口既可以工作在全双工模式下,也可工作在半双工模式下。 对)

23.STM32的串口既可以工作在异步模式下,也可工作在同步模式下。对)

24.每个I/O端口位可以自由的编程,尽管I/O端口寄存器必须以32位字的方式访问。(对)

25.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为输入时可以是激活的或者非激活的。( 对)

26.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为输出时可以是激活的或者非激活的。(错

27.端口输入数据寄存器的复位值为00000000H。( 对)

28.端口输入数据寄存器位[15:0]是只读的,并且仅能按字访问,它们包含相关I/O端口的输入值。(对

29.端口输入数据寄存器位[7:0]是只读的,并且仅能按字访问,它们包含相关I/O端口的输入值。( 错)

30.固件包里的Library文件夹包括一个标准的模板工程,该工程编译所有的库文件和所有用于创建一个新工程所必须的用户可修改文件。( 错)

31.从是否可编程的角度 ,中断可分为固定优先级中断和可调整优先(

32.从某种意义上说,异常就是中断。(对

33.所谓不可屏蔽的中断就是优先级不可调整的中断。( 错)

34.向量中断控制器只负责优先级的分配与管理,中断的使能和禁止和它无关。(错)

35.中断的优先级和它在中断向量表里的位置没有关系。( 错)

36.当抢占式优先级不一样时,一定会发生抢占。( 错)

37.向量中断控制器允许有相同的优先级。( 对)

38.如果两个中断的抢占式优先级相同,则按先来后到的顺序处理。(对

39ADC主要完成模/数转换功能。( 对)

40.STM32 ADC是一个12位的连续近似模拟到数字的转换器。( 对)

41.ADC转换器在每次结束一次转换后触发一次DMA传输。(对)

42.AD的有限分辨率而引起的误差称为量化误差。(对)

43.转换速率是指完成一次从模拟到数字的AD转换所需的时间。( 对)

44.STM32 ADC只可以在单一模式下工作。( 错)

45.如果规则转换已经在运行,为了注入转换后确保同步,所有的ADC的规则转换被停止,并在注入转换结束时同步恢复。( 对)

三、填空题

1.ST公司的STM32系列芯片采用了 Cortex-M3 内核,其分为两个系列。 STM32F101

系列为标准型,运行频率为 36MHZ STM32F103 系列为标准型,运行频率为 72MHZ

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

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

4STM32具有单独的位设置或位清除能力。这是通过 GPIOX_BSRR GPIOX_BRR 寄存器来实现的。

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

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

7STM32芯片内部集成的 12 ADC是一种逐次逼近型模拟数字转换器,具有 18

个通道,可测量 16 个外部和 2 个内部信号源。

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

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

10ADC的校准模式通过设置 ADC_CR2 寄存器的 CAL 位来启动。

11.在STM32中, ADC_CR2 寄存器的 ALIGN 位选择转换后数据储存的对齐方式。

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

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

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

15STM32EXTI线16连接到 PVD输出

16STM32EXTI线17连接到 RTC闹钟事件

17STM32EXTI线18连接到 USB唤醒事件

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

19STM32USART可以利用 分数波特率 发生器提供宽范围的波特率选择。

20.智能卡是一个 单线半双工 通信协议,STM32的智能卡功能可以通过设置USART_CR3寄存器的 SCEN 位来选择。

22.系统计时器(SysTick)提供了1 24位,降序,的计数器,具有灵活的控制机制

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

24STM32通用定时器TIM16位计数器可以采用三种方式工作,分别为 向上计数 模式、 向下计数 模式和 中央对其 模式。

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

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

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

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

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

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

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

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

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

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

35STM32的备份寄存器还可以用来实现 RTC 校准功能。为方便测量,32.768kHzRTC 时钟可以输出到 入侵检测 引脚上。通过设置RTC 校验寄存器(BKP_RTCCR)

CCO 位来开启这一功能。

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

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

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

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

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

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

45.在STM32中,从外设(TIMxADCSPIxI2Cx USARTx)产生的7个请求,通过逻辑 输入到DMA控制器,这样同时 只能有一个 个请求有效。

四、简答题

1、什么是嵌入式系统?嵌入式系统一般由哪几部分构成? P1

2ARM v7的体系结构可以分为哪几个子版本(款式),分别应用在什么领域? P12

3Cortex-M3的处理器有那两种工作模式和状态?如何进行工作模式和状态的切换?P18

4Cortex-M3的存储空间可以分为哪几个部分,每一部分的地址范围是怎样的?P26

5、什么是位绑定区、位绑定别名区?它们有怎样的关系?P30~31

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

7、简述STM32固件库命名规则。

8STM32共有那几种基本时钟信号?

9、简述设置系统时钟的基本流程。P86

10STM32GPIO的配置模式有那几种?如何进行配置模式的配置?P93

11、简述STM32的不同复用功能的重映射功能。

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

13、简述STM32的优先级划分与抢占的过程。P110

14、简述STM32USART的功能特点。

15、如何设置STM32的串口的波特率。P136

16STM32高级定时器有哪些功能?

17、已知STM32的系统时钟为72MHz,如何设置相关寄存器,实现20ms定时?

18、简述DMA控制器的基本功能。

19、、请描述DMA通道的工作模式、工作原理。

20、简述STM32ADC系统的功能特性。

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代码,补充相应的注释。

解:点亮连接的PA2上的LED灯、熄灭.....、点亮连接PA3上的LED、熄灭......

4)库函数GPIO_SetBitsGPIO_ResetBits的原形如下,用这两个函数重写循环点亮LED代码。第五章P107方法5

2、利用STM32GPIO接口及其操作,实现4LED按照LED1LED2LED3LED4的顺序循环显示。硬件连接图如图所示。

解:参照第一题

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

解:T=

4、的程序TIM3产生PWM信号。

频率:TIM3CLK = 36MHzPrescaler = 0x0,得到TIM3 counter clock = 36MHzTIM3 ARR

Register = 999进而设定TIM3频率 = TIM3 counter clock/ARR + 1= 36kHz

TIM3通道1的占空比 =TIM3_CCR1/ TIM3_ARR×100 = 50%,通道234的占空

比分37.5%25%12.5%

解:不考

最全ASCII码对照表

Bin               Dec     Hex         缩写/字符                                       解释

0000 0000     0           00             NUL (null)                                       空字符    

0000 0001     1           01             SOH (start of handing)                   标题开始  

0000 0010     2           02             STX (start of text)                           正文开始  

0000 0011     3           03             ETX (end of text)                           正文结束

0000 0100     4           04             EOT (end of transmission)             传输结束  

0000 0101     5           05             ENQ (enquiry)                               请求  

0000 0110     6           06             ACK (acknowledge)                       收到通知  

0000 0111     7           07             BEL (bell)                                       响铃

0000 1000     8           08             BS (backspace)                             退格  

0000 1001     9           09             HT (horizontal tab)                         水平制表符  

0000 1010     10         0A             LF (NL line feed, new line)             换行键  

0000 1011     11         0B             VT (vertical tab)                             垂直制表符  

0000 1100     12         0C             FF (NP form feed, new page)         换页键  

0000 1101     13         0D             CR (carriage return)                       回车键

0000 1110     14         0E             SO (shift out)                                 不用切换  

0000 1111     15         0F             SI (shift in)                                     启用切换  

0001 0000     16         10             DLE (data link escape)                   数据链路转义  

0001 0001     17         11             DC1 (device control 1)                   设备控制1  

0001 0010     18         12             DC2 (device control 2)                   设备控制2  

0001 0011     19         13             DC3 (device control 3)                   设备控制3  

0001 0100     20         14             DC4 (device control 4)                   设备控制4  

0001 0101     21         15             NAK (negative acknowledge)         拒绝接收  

0001 0110     22         16             SYN (synchronous idle)                 同步空闲  

0001 0111     23         17             ETB (end of trans. block)               传输块结束  

0001 1000     24         18             CAN (cancel)                                 取消

0001 1001     25         19             EM (end of medium)                       介质中断  

0001 1010     26         1A             SUB (substitute)                             替补  

0001 1011     27         1B             ESC (escape)                                 溢出  

0001 1100     28         1C             FS (file separator)                         文件分割符  

0001 1101     29         1D             GS (group separator)                     分组符  

0001 1110     30         1E             RS (record separator)                   记录分离符  

0001 1111     31         1F             US (unit separator)                         单元分隔符  



0010 0000     32         20             空格

0010 0001     33         21             !

0010 0010     34         22             "

0010 0011     35         23             #

0010 0100     36         24             $

0010 0101     37         25             %

0010 0110     38         26             &

0010 0111     39         27             "

0010 1000     40         28             (

0010 1001     41         29             )

0010 1010     42         2A             *

0010 1011     43         2B             +

0010 1100     44         2C             ,

0010 1101     45         2D             -

0010 1110     46         2E             .

0010 1111     47         2F             /

0011 0000     48         30             0

0011 0001     49         31             1

0011 0010     50         32             2

0011 0011     51         33             3

0011 0100     52         34             4

0011 0101     53         35             5

0011 0110     54         36             6

0011 0111     55         37             7

0011 1000     56         38             8

0011 1001     57         39             9

0011 1010     58         3A             :

0011 1011     59         3B             ;

0011 1100     60         3C             <

0011 1101     61         3D             =

0011 1110     62         3E             >

0011 1111     63         3F             ?

0100 0000     64         40             @



0100 0001     65         41             A

0100 0010     66         42             B

0100 0011     67         43             C

0100 0100     68         44             D

0100 0101     69         45             E

0100 0110     70         46             F

0100 0111     71         47             G

0100 1000     72         48             H

0100 1001     73         49             I

0100 1010     74         4A             J

0100 1011     75         4B             K

0100 1100     76         4C             L

0100 1101     77         4D             M

0100 1110     78         4E             N

0100 1111     79         4F             O

0101 0000     80         50             P

0101 0001     81         51             Q

0101 0010     82         52             R

0101 0011     83         53             S

0101 0100     84         54             T

0101 0101     85         55             U

0101 0110     86         56             V

0101 0111     87         57             W

0101 1000     88         58             X

0101 1001     89         59             Y

0101 1010     90         5A             Z

0101 1011     91         5B             [

0101 1100     92         5C             \

0101 1101     93         5D             ]

0101 1110     94         5E             ^

0101 1111     95         5F             _

0110 0000     96         60             `



0110 0001     97         61             a

0110 0010     98         62             b

0110 0011     99         63             c

0110 0100     100       64             d

0110 0101     101       65             e

0110 0110     102       66             f

0110 0111     103       67             g

0110 1000     104       68             h

0110 1001     105       69             i

0110 1010     106       6A             j

0110 1011     107       6B             k

0110 1100     108       6C             l

0110 1101     109       6D             m

0110 1110     110       6E             n

0110 1111     111       6F             o

0111 0000     112       70             p

0111 0001     113       71             q

0111 0010     114       72             r

0111 0011     115       73             s

0111 0100     116       74             t

0111 0101     117       75             u

0111 0110     118       76             v

0111 0111     119       77             w

0111 1000     120       78             x

0111 1001     121       79             y

0111 1010     122       7A             z

0111 1011     123       7B             {

0111 1100     124       7C             |

0111 1101     125       7D             }

0111 1110     126       7E             ~  



0111 1111     127       7F             DEL (delete)                                 删除  

ESC           VK_ESCAPE (27)

回车键:        VK_RETURN (13)

TAB键:       VK_TAB (9)

Caps Lock键: VK_CAPITAL (20)

Shift键:         VK_SHIFT ()

Ctrl键:         VK_CONTROL (17)

Alt键:          VK_MENU (18)

空格键:         VK_SPACE (/32)

退格键:         VK_BACK (8)

左徽标键: VK_LWIN (91)

右徽标键:    VK_LWIN (92)

鼠标右键快捷键:VK_APPS (93)

Insert键:        VK_INSERT (45)

Home键:        VK_HOME (36)

Page Up       VK_PRIOR (33)

PageDown VK_NEXT (34)

End键:          VK_END (35)

Delete键:       VK_DELETE (46)

方向键()    VK_LEFT (37)

方向键()    VK_UP (38)

方向键()    VK_RIGHT (39)

方向键()    VK_DOWN (40)

F1键:             VK_F1 (112)

F2键:             VK_F2 (113)

F3键:             VK_F3 (114)

F4键:             VK_F4 (115)

F5键:             VK_F5 (116)

F6键:             VK_F6 (117)

F7键:             VK_F7 (118)

F8键:             VK_F8 (119)

F9键:             VK_F9 (120)

F10键:           VK_F10 (121)

F11键:           VK_F11 (122)

F12键:          VK_F12 (123)

Num Lock键: VK_NUMLOCK (144)

小键盘0        VK_NUMPAD0 (96)

小键盘1         VK_NUMPAD0 (97)

小键盘2         VK_NUMPAD0 (98)

小键盘3         VK_NUMPAD0 (99)

小键盘4        VK_NUMPAD0 (100)

小键盘5        VK_NUMPAD0 (101)

小键盘6         VK_NUMPAD0 (102)

小键盘7         VK_NUMPAD0 (103)

小键盘8         VK_NUMPAD0 (104)

小键盘9        VK_NUMPAD0 (105)

小键盘.         VK_DECIMAL (110)

小键盘*         VK_MULTIPLY (106)

小键盘+         VK_MULTIPLY (107)

小键盘-         VK_SUBTRACT (109)

小键盘/         VK_DIVIDE (111)

Pause Break键: VK_PAUSE (19)

Scroll Lock键: VK_SCROLL (145)

4.6 习题

一、填空题

2ST公司的STM32系列芯片采用了 Cortex-M3内核,其分为两个系列。 STM32F101 系列为标准型,运行频率为 36MHz STM32F103 系列为标准型,运行频率为 72MHz

3STM32全系列芯片都具有引脚到引脚 一一对应 的特点,并且相同封装的内部资源均相同,这就给用户升级带来很大方便。

4STM32提供了一种最简单的程序下载方法,即 在应用编程 ,只需要串口连接到PC机上,便可以进行程序下载。

二、选择题

1.下列哪个不是RealView MDK开发环境的特点( D )。

AWindows风格 B.兼容的Keil μVision界面

C.全面的ARM处理器支持 D.体积庞大

4.下列哪种方法可以对STM32进行程序下载( ABCD )。(多选)

AKeil ULink BJ-Link

C.在应用编程 D.以上都可以

三、简答题

1.简述ARM RealView开发环境的特点。

答:ARM RealView MDK开发平台具有如下主要特点:

采用Keil μVision3的开发环境和界面,给单片机用户的升级带来极大的方便。

具有Windows风格的可视化操作界面,界面友好,使用极为方便;

支持汇编语言、C51语言以及混合编程等多种方式的单片机设计;

集成了非常全面的ARM处理器支持,能够完成ARM7ARM9以及ARM Cortex-M3等处理器的程序设计和仿真;

集成了丰富的库函数,以及完善的编译连接工具;

提供了并口、串口、A/DD/A、定时器/计数器以及中断等资源的硬件仿真能力,能够帮助用户模拟实际硬件的执行效果;

可以与多款外部仿真器联合使用,提供了强大的在线仿真调试能力;

内嵌RTX-51 TinyRTX-51 FULL内核,提供了简单而强大的实时多任务操作系统支持;

在一个开发界面中支持多个项目的程序设计;

支持多级代码优化,最大限度地帮助用户精简代码体积;

由于Keil μVision具有最为广泛的用户群,因此相应的代码资源非常丰富,读者可以轻松地找到各类编程资源以加速学习和开发过程。

2.简述基于ARM Cortex-M3STM32芯片特点。

答:ST公司的STM32系列芯片采用了ARM Cortex-M3内核,其分为两个系列。STM32F101系列为标准型,运行频率为36MHzSTM32F103系列为标准型,运行频率为72MHzSTM32全系列芯片都具有引脚到引脚一一对应的特点,并且相同封装的内部资源均相同,这就给用户升级带来很大方便。

3.简述STM32最小硬件开发系统的组成及其各部分的作用。

答:读者可以参阅正文中的第3节,其中包括如下几个部分:

主芯片:采用STM32系列,为整个开发系统的核心,本书所有的程序都运行在其中。

晶体振荡部分:提供了硬件时序以及实时时钟使用。

供电部分:采用AM1117为芯片提供稳定的3.3V电压。

复位部分:采用一个按键开关来实现。

9.5 习题

一、填空题

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

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

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

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

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

二、选择题

1.在APB2上的I/O脚的翻转速度为( A )。

A18MHz B50MHz

C36MHz D72MHz

4.当输出模式位MODE[1:0]=10时,最大输出速度为( B )。

A10MHz B2MHz

C50MHz D72MHz

三、简答题

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

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

2.简述STM32GPIO的一些主要特点(至少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);

10.6 习题

一、填空题

1.在STM32中,闪存存储器有 主存储块 信息块 组成。

2STM32Flash闪存的指令和数据访问是通过 AHB 总线完成的。预取模块是用于通过 ICode 总线读取指令的。仲裁是作用在闪存接口,并且 DCode 总线上的数据访问优先。

3STM32Flash闪存编程一次可以写入 16 位。STM32Flash闪存擦除操作可以按 页面 擦除或 完全 擦除, 完全擦除 不影响信息块。写操作(编程或擦除)结束时可以触发中断。仅当闪存控制器接口时钟开启时,此中断可以用来从 WFI 模式退出。

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

5.选项字节寄存器结构中,RDP 读出选项字节 USER 用户选项字节 Data0 数据0 选项字节,Data1 数据1 选项字节,WRP0 写保护0 的选项字节,WRP1 写保护1 的选项字节,WRP2 写保护2 的选项字节,WRP3 写保护3 的选项字节。

二、选择题

1STM32Flash闪存编程一次可以写入( A )位。

A16 B8

C32 D4

2STM32主存储块的页大小为( A 字节。

A1K B3K

C2K D4K

3.用户选择字节的大小为( A )。

A512字节 B2K

C1K D128K

4.下列哪些不是STM32闪存存储器的特点( C )。

A.大容量 B.高速

C.掉电不保存 D.具有选择字节加载器

11.6 习题

一、填空题

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

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

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

4ADC的校准模式通过设置 ADC_CR2 寄存器的 CAL 位来启动。

5.在STM32中, ADC_CR2 寄存器的 ALIGN 位选择转换后数据储存的对齐方式。

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

二、选择题

1.哪些是STM32ADC系统的特点(多选)( ABCD )。

A12-位分辨率 B.自校准

C.可编程数据对齐 D.单次和连续转换模式

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

ASRAM BFlash

CADC_JDRx寄存器 DADC_CR1

3STM32规则组由多达( A )个转换组成。

A16 B18

C4 D20

4.在STM32中,( A )寄存器的ALIGN位选择转换后数据储存的对齐方式。

AADC_CR2 BADC_JDRx

CADC_CR1 DADC_JSQR

三、简答题

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

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

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

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

12.7 习题

一、填空题

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

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

3STM32EXTI线16连接到 PVD输出

4STM32EXTI线17连接到 RTC闹钟事件

5STM32EXTI线18连接到 USB唤醒事件

二、选择题

1ARM Cortex-M3不可以通过( D )唤醒CPU

AI/O端口 BRTC 闹钟

CUSB唤醒事件 DPLL

2STM32嵌套向量中断控制器(NVIC) 具有( A 个可编程的优先等级。

A16 B43

C72 D36

3STM32的外部中断/事件控制器(EXTI)支持( C )个中断/事件请求。

A16 B43

C19 D36

三、简答题

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

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

具有43 个可屏蔽中断通道(不包含16 Cortex-M3 的中断线)。

具有16 个可编程的优先等级。

可实现低延迟的异常和中断处理。

具有电源管理控制。

系统控制寄存器的实现。

四、编程题

13.7 习题

一、填空题

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

2STM32USART可以利用 分数波特率 发生器提供宽范围的波特率选择。

3.智能卡是一个 单线半双工 通信协议,STM32的智能卡功能可以通过设置USART_CR3寄存器的 SCEN 位来选择。

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

二、选择题

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

AUSART_CR1 BUSART_CR2

CUSART_BRR DUSART_CR3

2STM32bxCAN的主要工作模式为( ABD )。

A.初始化模式 B.正常模式

C.环回模式 D.睡眠模式

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

ALBKM BSILM

CBTR D.以上都不是

三、简答题

1.简述STM32USART的功能特点。、

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

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

15.6 习题

一、填空题

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

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

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

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

二、选择题

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

A.具备16位向上,向下,向上/向下自动装载计数器。

B.具备16位可编程预分频器。

C.具备4个独立通道。

D.可以通过事件产生中断,中断类型丰富,具备DMA功能。

2.通用定时器TIMx的特殊工作模式包括( ABCD )。(多选)

A.输入捕获模式 BPWM 输入模式

C.输出模式 D.单脉冲模式(OPM)

3STM32的可编程通用定时器的时基单元包含( ABC )。(多选)

A.计数器寄存器(TIMx_CNT)

B.预分频器寄存器(TIMx_PSC)

C.自动装载寄存器(TIMx_ARR)

D.以上都不是

三、简答题

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

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

四、编程题

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

16.5 习题

一、填空题

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

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

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

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

二、选择题

1STM32的可编程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.输入捕获模式 BPWM 输入模式

C.编码器接口模式 D.单脉冲模式(OPM)

三、简答题

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

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

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

17.7 习题

一、填空题

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

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

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

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

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

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

二、选择题

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

AHSI振荡器时钟 BHSE振荡器时钟

CPLL时钟 DHLI振荡时钟

2.在STM32中,当( AB )发生时,将产生电源复位。(多选)

A.从待机模式中返回 B.上电/掉电复位(POR/PDR复位)

CNRST管脚上的低电平 DPLL

3.,以下哪个时钟信号可被选作MCO 时钟( ABCD )。(多选)

ASYSCLK BHSI

CHSE D.以2分频的PLL 时钟

三、简答题

1.简述STM32复位的类型。

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

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

19.5 习题

一、填空题

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

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

3STM32的备份寄存器还可以用来实现 RTC 校准功能。为方便测量,32.768kHzRTC 时钟可以输出到 侵入检测 引脚上。通过设置RTC 校验寄存器(BKP_RTCCR) CCO 位来开启这一功能。

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

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

二、选择题

1.在STM32中,备份寄存器是( A )的寄存器。

A16 B32

C8 D4

2.为了允许访问备份寄存器和RTC,电源控制寄存器(PWR_CR)DBP 位必须置为( A )。

A1 B2

C0 D3

3.下列哪个不是备份寄存器( C )。

ABKP_DR1 BBKP_DR3

CBKP_RTCCR DBKP_DR5

20.5 习题

一、填空题

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

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

3DMA控制器的每个通道都可以在有固定地址的 外设寄存器存储器地址 之间执行DMA传输。DMA传输的数据量是可编程的,可以通过 DMA_CCRx 寄存器中的 PSIZE MSIZE 位编程。

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

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

二、选择题

1DMA控制器可编程的数据传输数目最大为( A )。

A65536 B65535

C1024 D4096

2.每个DMA通道具有( A )个事件标志。

A3 B4

C5 D6

3DMA控制器中,独立的源和目标数据区的传输宽度为( ABCD )(多选)。

A.字节 B.半字

C.全字 D.以上都可以

4STM32中,1 DMA请求占用至少( B )个周期的CPU 访问系统总线时间。

A1 B2

C3 D4

三、简答题

1.简述DMA控制器的基本功能。

答:STM32DMA 控制器有7个通道,每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA 请求的优先权。DMA 控制器和Cortex-M3 核共享系统数据线执行直接存储器数据传输。因此,1 DMA请求占用至少2 个周期的CPU 访问系统总线时间。为了保证Cortex-M3 核的代码执行的最小带宽,DMA 控制器总是在2 个连续的DMA 请求间释放系统时钟至少1 个周期。

基于stm32的考试题目

相关推荐