文档库 最新最全的文档下载
当前位置:文档库 › 基于stm32的考试题目

基于stm32的考试题目

基于stm32的考试题目
基于stm32的考试题目

STM32习题集

一、选择题

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

(A)v4T (B)v5TE (C)v6 (D)v7

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

(A)2 (B)4 (C)6 (D)8

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

(A)Cortex-M3 (B)Cortex-M4 (C)Cortex-M6 (D)Cortex-M8

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

(A)2级(B)3级(C)5级(D)8级

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

(A)8 (B)16 (C)32 (D)64

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

(A)8Mbit/s (B)12Mbit/s (C)16Mbit/s (D)24Mbit/s

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

(A)特权方式(B)普通方式(C)Handle方式(D)Thread方式

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

(A)Thread模式(B)Thumb模式(C)Thumb-2模式(D)Debug模式

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

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

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

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

8.Handle模式一般使用( A )

(A)Main_SP (B)Process_SP (C)Main_SP和Process_SP (D)Main_SP或Process_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位的锁定寄存器(A)2,1,2,1,1 (B)2,2,1,1,1 (C)2,2,2,1,1 (D)2,2,1,2,1

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

(A)GPIOX_BSRR和GPIOX_BRR (B)GPIOX_CRL和GPIOX_CRH(C)GPIOX_BSRR和GPIOX_LCKR (D)GPIOX_IDR和GPIOX_ODR

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

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

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

(A)00H (B)08H(C)0CH (D)04H

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

(A)00H (B)08H(C)0CH (D)04H

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

(A)16位字(B)16位字节(C)32位字节(D)32位字

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

- 1 -

- 2 - (A )ENABLE 或者DISABLE (B )SET 或者RESTE

(C )YES 或者NO (D )SUCCESS 或者ERROR

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

(A )ENABLE 或者DISABLE (B )SUCCESS 或者ERROR (C )SET 或者RESTE (D )YES 或者NO 20.STM32F107V 有( C )可屏蔽中断通道

(A )40 (B )50 (C )60 (D )70 21.STM32F107V 采用( A )位来编辑中断的优先级

(A )4 (B )8 (C )16 (D )32 22.向量中断控制器最多可支持( C )个IRQ 中断

(A )127 (B )128 (C )240 (D )255 23.系统控制寄存器 NVIC 和处理器内核接口紧密耦合,主要目的是( C ) (A )结构更紧凑,减小芯片的尺寸 (B )连接更可靠,减小出错的概率

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

(D )无所谓,没有特别的意思,远一点也没有关系 24.关于中断嵌套说法正确的是( B )

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

(C )只有抢占式优先级和响应优先级都不一才有可能发生中断嵌套 (D )以上说法都不对

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

(A )4 (B )5 (C )6 (D )7 26.中断屏蔽器能屏蔽( B )

(A )所有中断和异常 (B )除了NMI 外所有异常和中断 (C )除了NMI 、异常所有其他中断 (D )部分中断 27.PWM 是( A )

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

29.要想使能自动重装载的预装载寄存器需通过设置TIMx_CR1寄存器的( B )位 (A )UIF (B )ARPE (C )UG (D )URS 30.以下对于STM32 ADC 描述正确的是( B )

(A )STM32 ADC 是一个12位连续近似模拟到数字的转换器 (B )STM32 ADC 是一个8位连续近似模拟到数字的转换器 (C )STM32 ADC 是一个12位连续近似数字到模拟的转换器 (D )STM32 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 ) (A )12位精度 (B )单一转换模式

(C )按通道配置采样时间(D )数据对齐方式与内建数据一致 35.以下对STM32F107集成A/D 的特性描述正确的是( B ) (A )供电需求: 2.6V 到3.8V

- 3 -

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

(C )性能线设备的转换时间:28MHz 时为1us (D )访问线设备的转换时间:56MHz 时为1us

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

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

- 4 -

(A )00 (B )01 (C )10 (D )11

38.. 已知TIM1定时器的起始地址为0x4001 2C00,则定时器1的捕获/比较寄存器1的地址为( D ) (A )0x4001 2C20 (B )0x4001 2C2C (C )0x4001 2C38 (D )0x4001 2C34

39.已知TIM1定时器的起始地址为0x4001 2C00,则定时器1的捕获/比较寄存器2的地址为( C ) (A )0x4001 2C20 (B )0x40012C2C (C )0x4001 2C38 (D )0x4001 2C34 40.SysTick 定时器校正值为( B ) (A )9000 (B )10000 (C )12000 (D )15000

41.SysTick 定时器的中断号是( C ) (A )4 (B )5 (C )6 (D )7

42.上图中Tamper 连接了STM32F10X 的PC13GPIO ,PC13通用IO 端口映射到外部中断事件线上是( D )

(A )EXTI 线14 (B )EXTI 线15 (C )EXTI 线12 (D )EXTI 线13

43.上图中WKUP 连接了STM32F10X 的PA0 GPIO ,PA0通用IO 端口映射到外部中断事件线

上是( A )

- 5 -

(A )EXTI 线0 (B )EXTI 线1 (C )EXTI 线2 (D )EXTI 线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-20H ,JOFR1的偏移地址为( D ) (A )0x20 (B )0x1c (C )0x18 (D )0x14

- 6 - 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-20H ,JOFR2的偏移地址为( B ) (A )0x14 (B )0x18 (C )0x1c (D )0x20

46.Cortex-M3的提供的流水线是( B ) (A )2级 (B )3级 (C )5级 (D )8级

47.Contex – M3处理器的寄存器r14代表( B ) (A )通用寄存器 (B )链接寄存器 (C )程序计数器 (D )程序状态寄存器

48.固件库中的功能状态(FunctionalState )类型被赋予以下两个值( A ) (A )ENABLE 或者DISABLE (B )SET 或者RESTE

(C )YES 或者NO (D )SUCCESS 或者ERROR

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

- 7 -

(B )SUCCESS 或者ERROR

(C )SET 或者RESTE (D )YES 或者NO

50.DMA 控制器可编程的数据传输数目最大为( A )。 A .65536 B .65535 C .1024 D .4096

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

52.STM32的USART 根据( A )寄存器M 位的状态,来选择发送8位或者9位的数据字。 A .USART_CR1 B .USART_CR2 C .USART_BRR D .USART_CR3

53.下面不属于STM32的bxCAN 的主要工作模式为( C )。 A .初始化模式 B .正常模式 C .环回模式 D .睡眠模式

54.和PC 系统机相比嵌入式系统不具备以下哪个特点( C )。 A 、系统内核小 B 、专用性强 C 、可执行多任务 D 、系统精简

55.嵌入式系统有硬件和软件部分构成,以下( C )不属于嵌入式系统软件。 A. 系统软件 B. 驱动 C. FPGA 编程软件 D. 嵌入式中间件 56.在APB2上的I/O 脚的翻转速度为( A )。 A .18MHz B .50MHz C .36MHz D .72MHz

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

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

A .SRAM

B .Flash

C .ADC_JDRx 寄存器

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

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

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

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

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

- 8 - A .USART_CR1 B .USART_CR2 C .USART_BRR D .USART_CR3 66.DMA 控制器可编程的数据传输数目最大为(A )。 A .65536 B .65535 C .1024 D .4096 67.每个DMA 通道具有( A )个事件标志。 A .3 B .4 C .5 D .6

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

二、判断题

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.在系统层,处理器状态寄存器分别为:APSR ,IPSR, 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 端口的输入值。( 错)

- 9 -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CCO 位来开启这一功能。

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

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

38.STM32的DMA 控制器有 7 个通道,每个通道专门用来管理来自于一个或多个外设对存储

- 11 -

器访问的请求。还有一个 仲裁器 来协调各个DMA 请求的优先权。

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

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

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

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

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

四、简答题

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

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

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

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

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

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

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

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

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

10、STM32的GPIO 的配置模式有那几种?如何进行配置模式的配置?P93 11、简述STM32的不同复用功能的重映射功能。

12、简述嵌套向量中断控制器(NVIC )的主要特性。P38 13、简述STM32的优先级划分与抢占的过程。P110 14、简述STM32的USART 的功能特点。 15、如何设置STM32的串口的波特率。P136 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*/

- 12 - 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_SetBits 和GPIO_ResetBits 的原形如下,用这两个函数重写循环点亮LED 代码。第五章P107方法

5

2、利用STM32的GPIO 接口及其操作,实现4个LED 按照LED1、LED2、LED

3、LED4的顺序循环显示。硬件连接图如图所示。

解:参照第一题

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

解:T=

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%。

解:不考

最全ASCII 码对照表

- 13 -

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 +

- 14 - 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

- 15 -

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

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

- 17 -

Pause Break 键: VK_PAUSE (19) Scroll Lock 键: VK_SCROLL (145)

4.6 习题

一、填空题

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

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

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

二、选择题

1.下列哪个不是RealView MDK 开发环境的特点( D )。 A .Windows 风格 B .兼容的Keil μVision 界面 C .全面的ARM 处理器支持 D .体积庞大

4.下列哪种方法可以对STM32进行程序下载( ABCD )。(多选) A .Keil ULink B .J-Link C .在应用编程 D .以上都可以 三、简答题

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

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

? 采用Keil μVision3的开发环境和界面,给单片机用户的升级带来极大的方便。 ? 具有Windows 风格的可视化操作界面,界面友好,使用极为方便; ? 支持汇编语言、C51语言以及混合编程等多种方式的单片机设计;

? 集成了非常全面的ARM 处理器支持,能够完成ARM7、ARM9以及ARM Cortex-M3等处理器的

程序设计和仿真;

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

? 提供了并口、串口、A/D 、D/A 、定时器/计数器以及中断等资源的硬件仿真能力,能够帮助用户模

拟实际硬件的执行效果;

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

? 内嵌RTX-51 Tiny 和RTX-51 FULL 内核,提供了简单而强大的实时多任务操作系统支持; ? 在一个开发界面中支持多个项目的程序设计;

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

? 由于Keil μVision 具有最为广泛的用户群,因此相应的代码资源非常丰富,读者可以轻松地找到

各类编程资源以加速学习和开发过程。

2.简述基于ARM Cortex-M3的STM32芯片特点。

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

- 18 - 3.简述STM32最小硬件开发系统的组成及其各部分的作用。 答:读者可以参阅正文中的第3节,其中包括如下几个部分:

? 主芯片:采用STM32系列,为整个开发系统的核心,本书所有的程序都运行在其中。 ? 晶体振荡部分:提供了硬件时序以及实时时钟使用。 ? 供电部分:采用AM1117为芯片提供稳定的3.3V 电压。 ? 复位部分:采用一个按键开关来实现。

9.5 习题

一、填空题

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 锁定机制。

- 19 -

四、编程题

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

答:由于还没有讲到定时器相关的知识,所以这里旨在让读者给出定时器对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中,闪存存储器有 主存储块 和 信息块 组成。

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

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

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

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

二、选择题

1.STM32的Flash 闪存编程一次可以写入( A )位。 A .16 B .8 C .32 D .4 2.STM32主存储块的页大小为( A ) 字节。 A .1K B .3K C .2K D .4K 3.用户选择字节的大小为( A )。 A .512字节 B .2K C .1K D .128K 4.下列哪些不是STM32闪存存储器的特点( C )。 A .大容量

B .高速

C .掉电不保存

D .具有选择字节加载器

11.6 习题

一、填空题

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

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

2.在STM32中,只有在 规则通道 的转换结束时才产生DMA 请求,并将转换的数据从

- 20 - 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 工作模式主要包括如下几种:同时注入模式、同时规则模式、快速交替模式、慢速交替模式、交替触发模式和独立模式。

12.7 习题

一、填空题

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

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

相关文档