2024年4月23日发(作者:机械键盘)
STM32习题集
一、选择题
-M处理器采用的架构是( D )
(A)v4T (B)v5TE (C)v6 (D)v7
可用来表示优先权等级的位数可配置为是( D )
(A)2 (B)4 (C)6 (D)8
-M系列正式发布的版本是( A )
(A)Cortex-M3 (B)Cortex-M4 (C)Cortex-M6 (D)Cortex-M8
-M3的提供的流水线是( B )
(A)2级 (B)3级 (C)5级 (D)8级
-M3的提供的单周期乘法位数是( C )
(A)8 (B)16 (C)32 (D)64
32处理器的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)空栈
t – M3处理器的寄存器r14代表( B )
(A)通用寄存器 (B)链接寄存器 (C)程序计数器 (D)程序状态寄存器
模式一般使用( A )
(A)Main_SP (B)Process_SP (C)Main_SP和Process_SP (D)Main_SP或
Process_SP
– M3使用的存储器格式是( D )
(A)小端格式 (B)大端格式 (C)小端或大端格式 (D)没有正确答案
– 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 )
(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
32F107V有( C )可屏蔽中断通道
(A)40 (B)50 (C)60 (D)70
32F107V采用( 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)部分中断
是( A )
28.(A)脉冲宽度调制 (B)脉冲频率调制 (C)脉冲幅度调制 (D)脉冲位置调制
29.要想使能自动重装载的预装载寄存器需通过设置TIMx_CR1寄存器的( B )位
(A)UIF (B)ARPE (C)UG (D)URS
30.以下对于STM32 ADC描述正确的是( A )
(A)STM32 ADC是一个12位连续近似模拟到数字的转换器
(B)STM32 ADC是一个8位连续近似模拟到数字的转换器
(C)STM32 ADC是一个12位连续近似数字到模拟的转换器
(D)STM32 ADC是一个8位连续近似数字到模拟的转换器
转换过程不含哪项( D )
(A)采样 (B)量化 (C)编码 (D)逆采样
转换过程正确的是( 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
(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 )
(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
k定时器校正值为( B )
(A)9000 (B)10000
(C)12000 (D)15000
k定时器的中断号是( 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 )
(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
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的偏移地址为(
(A)0x14 (B)0x18
(C)0x1c (D)0x20
-M3的提供的流水线是( B )
(A)2级 (B)3级
(C)5级 (D)8级
– M3处理器的寄存器r14代表( B )
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
(B)SUCCESS或者ERROR
(C)SET或者RESTE
(D)YES或者NO
控制器可编程的数据传输数目最大为( A )。
A.65536 B.65535
C.1024 D.4096
32中,1 个DMA请求占用至少( B )个周期的CPU 访问系统总线时间。
A.1 B.2
C.3 D.4
32的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位的数据
字。
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
二、判断题
-M3系列处理器支持Thumb指令集。( 错 )
-M3系列处理器支持Thumb-2指令集。( 对 )
-M3系列处理器内核采用了哈佛结构的三级流水线。( 对 )
-M系列不支持Thumb-2指令集。( 错 )
-M3系列处理器内核采用了冯诺依曼结构的三级流水线。( 错 )
32系列MCU在使用电池供电时,提供3.3~5V的低电压工作能力。( 错 )
32处理器的LQPF100封装芯片的最小系统只需7个滤波电容作为外围器件。( dui )
-M3在待机状态时保持极低的电能消耗,典型的耗电值仅为2µA。( 错 )
9.当处理器在Thread模式下,代码一定是非特权的。( 错 )
t-M3处理器可以使用4个堆栈。( 错 )
11.在系统复位后,所有的代码都使用Main栈。( 对 )
12.高寄存器可以被所有的32位指令访问,也可以被16位指令访问。( 错 )
13.在系统层,处理器状态寄存器分别为:APSR,IPSR, PPSR。( 错 )
程序状态寄存器的28位,当V=0,表示结果为无益处。( 对 )
-M3只可以使用小端格式访问代码。( 错 )
16.所谓不可屏蔽的中断就是优先级不可调整的中断。( 错)
17.向量中断控制器只负责优先级的分配与管理,中断的使能和禁止和它无关。( 错 )
-M3体系架构中,有了位带位操作后,可以使用普通的加载/存储指令来对单一的
比特进行读写。(对)
-M3体系架构中,有两个区中实现了位带:一个是 SRAM 区的最低 1MB 范围,
第二个则是片内外设 区的最低 1MB 范围。(对)
3210xx的固件库中,RCC_DeInit函数是将RCC寄存器重新设置为默认值。(对)
3210xx的固件库中,RCC_PCLK2Config函数是用于设置低速APB时钟。(错 )
32的串口既可以工作在全双工模式下,也可工作在半双工模式下。( 对)
32的串口既可以工作在异步模式下,也可工作在同步模式下。(对)
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主要完成模/数转换功能。( 对)
32 ADC是一个12位的连续近似模拟到数字的转换器。( 对)
转换器在每次结束一次转换后触发一次DMA传输。(对)
42.由AD的有限分辨率而引起的误差称为量化误差。(对)
43.转换速率是指完成一次从模拟到数字的AD转换所需的时间。( 对)
32 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 相连接。
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 个通道,每个通道专门用来管理来自于一个或多个外
设对存储器访问的请求。还有一个 仲裁器 来协调各个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、什么是嵌入式系统?嵌入式系统一般由哪几部分构成?
以应用为中心,计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、
可靠性、成本、体积、功耗等严格要求的专用计算机系统。 嵌入式系统通常由嵌入式
处理器、外围设备、嵌入式操作系统、应用软件等几大部分组成。
2、ARM v7的体系结构可以分为哪几个子版本(款式),分别应用在什么领域?
A,R,M三种。A系列性能最好,在手机,平板普遍应用,移动设备芯片90%都是使用
arm;R系列用于实时控制系统;M系列性价比最高,主要应用在工业控制上。
3、Cortex-M3的处理器有那两种工作模式和状态?如何进行工作模式和状态的切换?
线程模式、处理模式,Thumb状态、调试状态
处理器复位或异常退出时为线程模式,出现异常时进入处理模式
正常执行16位和32位的Thumb和Thumb-2指令时进入Thumb状态,调试时进入调试
状态
4、Cortex-M3的存储空间可以分为哪几个部分,每一部分的地址范围是怎样的?
内核设备:0xE000 0000-0xE00F FFFF (1MB)
片上设备:0x4000 0000-0x5FFF FFFF (512MB)
SRAM :0x2000 0000-0x3FFF FFFF (512MB)
Flash :0x0000 0000-0x1FFF FFFF (512MB)
5、什么是位绑定区、位绑定别名区?它们有怎样的关系?
把对寄存器某一位的操作,映射到某个内存地址(只有最低位有效)
对别名地址的访问最终作用到位带区的访问上(注意:这中间有一个地址映射过程)
6、基于CMSIS标准的软件架构分为那几层?其中的CMSIS层一般由哪几部分组成?
用户应用层,操作系统层,CMSIS层以及硬件寄存器层。
核内外设访问层(CPAL,Core Peripheral Access Layer)、
片上外设访问层(DPAL,Device Peripheral Access Layer)、
外设访问函数(AFP,Access Functionsfor Peripherals)
7、简述STM32固件库命名规则。
系统文件名和源文件名以‘ stm32f10x_’的形式表示。
在单一文件中使用的常量在该文件中定义。在多个文件中使用的常量定义在头文件中。
所有常量都以大写字母表示。
寄存器当做常量看待,同样以大写字母表示,多数情况下,在STM3210X参考手册中
使用相同的缩写。
外围模块的功能函数的名字,需要有相应的外围模块缩写加下划线这样的前缀,每个单
词的首字符要大写。例如SPI_SendData,在一个函数名中,只允许有一条下划线,用来
区分外围模块缩写和剩下的函数名。
使用X_InitTypeDef中指定的参数初始化X外围模块的函数,被命名为X_Init.
复位X外围模块的寄存器为默认值的函数,命名为X_DeInit。
将X_InitTypeDef结构体每个成员设置为复位值的函数,命名为x_StructInit.
用来使能或者禁止指定的X外围的函数,命名为X_Cmd。
用来使能或禁止指定的X外围模块的某个中断资源的函数,命名为X_ITConfig。
用来使能或禁止指定的X外围模块的DMA接口的函数,命名为X_DMAConfig.
用来设置某个外围模块的函数,总是以字符串‘Config’结尾。
用来检验指定X的标志是否被职位或清零的函数命名为X_GetFlagStatus.
用来清除某个X的标志函数,命名为X_ClearFlag
用来检验指定X的中断是否发生的函数,命名X_GetITstatus
用来清除某个X中断挂起位的函数,命名为X_ClearITPendingBit
8、STM32共有那几种基本时钟信号?
5种
HSI:高速内部时钟信号
HSE:高速外部时钟信号
LSI:低速内部市政信号
LSE:低速外部时钟信号
PLL:锁相环倍频输出
9、简述设置系统时钟的基本流程。
复位寄存器CR、CFGR和CIR。
打开HSE,并等其就绪。
设置APB1不超过36MHz。
设置PLL的倍频系数和时钟源。
打开PLL,并等PLL锁定。
设置PLL为系统时钟。
10、STM32的GPIO的配置模式有那几种?如何进行配置模式的配置?
8种
1. GPIO_Mode_AIN模拟输入
2. GPIO_Mode_IN_FLOATING浮空输入
3. GPIO_Mode_IPD下拉输入
4. GPIO_Mode_IPU上拉输入
5. GPIO_Mode_Out_OD开漏输出
6. GPIO_Mode_Out_PP 推挽输出
7. GPIO_Mode_AF_OD复用开漏输出
8. GPIO_Mode_AF_PP 复用推挽输出
11、简述STM32的不同复用功能的重映射功能。
STM32有很多的内置外设,这些内置外设都是与I/O口共用引出引脚,通过相应的配
置,很多复用功能的引脚可以通过重映射,从不同的I/O管脚引出。既方便了用户进行
PCB设计,还可以虚拟地增加复用功能的数量
12、简述嵌套向量中断控制器(NVIC)的主要特性。
支持嵌套和中断向量
43个可屏蔽中断通道
16个可编程优先级
低延迟的异常和中断处理
电源管理控制
系统控制寄存器的实现
TM32的嵌套向量中断控制器(NVIC) 管理着包括Cortex-M3核异常等中断,其和ARM
处理器核的接口紧密相连,可以实现低延迟的中断处理,并有效地处理晚到的中断。STM32
嵌套向量中断控制器(NVIC)的主要特性如下: q 具有43 个可屏蔽中断通道(不包含16 个
Cortex-M3 的中断线)。 q 具有16 个可编程的优先等级。 q 可实现低延迟的异常和中断处
理。 q 具有电源管理控制。 q 系统控制寄存器的实现。
13、简述STM32的优先级划分与抢占的过程。
抢占式优先级和响应优先级
抢占式优先级的中断事件会打断当前的主程序或者是中断程序的运行——抢断式优先
响应,俗称中断嵌套。
14、简述STM32的USART的功能特点。
STM32的USART为通用同步异步收发器,支持同步单线通信和半双工单线通信,可利
用分数波特率发生器提供范围的波特率选择。还支持LIN,智能卡协议和IrDA红外通
信,以及调制解调等操作,还具有DMA
STM32的USART为通用同步异步收发器,其可以与使用工业标准NRZ异步串行数据
格式的外部设备之间进行全双工数据交换。USART还可以利用分数波特率发生器提供
宽范围的波特率选择。 STM32的USART支持同步单向通信和半双工单线通信。同时,
其也支持LIN(局部互连网),智能卡协议和IrDA(红外数据)SIR ENDEC规范,以及调制
解调器(CTS/RTS)操作。STM32还具备多处理器通信能力。另外,通过多缓冲器配置的
DMA方式,还可以实现高速数据通信。
15、如何设置STM32的串口的波特率。
USARTx->BRR=fPCLK/波特率
16、STM32高级定时器有哪些功能?
高级定时器TIM1适合多种用途,包含测量输入信号的脉冲宽度,或者产生输出波形。
使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽途和波形周期从几个微秒
到几个毫秒的调节
17、已知STM32的系统时钟为72MHz,如何设置相关寄存器,实现20ms定时?
#define OSFREQ 50 //20ms定时,频率为50Hz
#define SysTick_CSR (*((volatile unsigned int *) 0xE000E010)) //控制寄存器
#define SysTick_LOAD(*((volatile unsigned int *) 0xE000E014))//重载寄存器
#define SysTick_VAL(*((volatile unsigned int *) 0xE000E018))//当前值寄存器
#define SysTick_CALRB(*((volatile unsigned int *) 0xE000E01c))//校准值寄存器
//volatile的含义是放弃优化,每次读写都能够直接读和谐寄存器
SysTick_Init(){
SysTick_VAL = 0; //当前值寄存器清零
SysTick_LOAD = FCLK/OSFREQ
//SysTick的计数频率是FCLK,要产生中断的频率是OSFREQ,因此计数值应该是
FCLK/OSFREQ
SysTick_CSR |= 0x07;
//使用FCLK作SysTick频率,使能SysTick中断,使能SysTick
}
18、简述DMA控制器的基本功能。
STM32的DMA 控制器有7个通道,每个通道专门用来管理来自于一个或多个外设对
存储器访问的请求。还有一个仲裁器来协调各个DMA 请求的优先权。
STM32的DMA 控制器有7个通道,每个通道专门用来管理来自于一个或多个外设对
存储器访问的请求。还有一个仲裁器来协调各个DMA 请求的优先权。DMA 控制器和
Cortex-M3 核共享系统数据线执行直接存储器数据传输。因此,1 个DMA请求占用至
少2 个周期的CPU 访问系统总线时间。为了保证Cortex-M3 核的代码执行的最小带
宽,DMA 控制器总是在2 个连续的DMA 请求间释放系统时钟至少1 个周期。
19、、请描述DMA通道的工作模式、工作原理。
利用专门的硬件电路实现外设直接与存储器并行高速数据传输,在传输的过程中无需
CPU执行指令干预。
20、简述STM32的ADC系统的功能特性。
STM32 ADC是12位逐次比较型ADC,有18个通道,可测量16个外部,两个内部信
号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐
或者右对齐方式存储在16位数据寄存器中。模拟看门狗特性运行应用程序检测输入电压是
否超出用户自定的高/低阈值
STM32的ADC系统的主要功能特性包括如下几个方面:ADC开关控制、ADC时钟、ADC
通道选择、ADC的转换模式、中断、模拟看门狗、ADC的扫描模式、ADC的注入通道管
理、间断模式、ADC的校准模式、ADC的数据对齐、可编程的通道采样时间、外部触发转
换、DMA请求、双ADC模式和温度传感器。
21、简述STM32的双ADC工作模式。
在有两个ADC的STM32器件中,可以使用 双ADC 模式。在 双ADC 模式里,
根据 ADC_CR1 寄存器中 DUALMOD[2:0] 位所选的模式,转换的启动可以是
ADC1主和ADC2从的交替触发或同时触发。
在有两个ADC的STM32器件中,可以使用双ADC模式。在双ADC模式里,根据
ADC_CR1寄存器中DUALMOD[2:0]位所选的模式,转换的启动可以是ADC1主和
ADC2从的交替触发或同时触发。双ADC工作模式主要包括如下几种:同时注入模式、
同时规则模式、快速交替模式、慢速交替模式、交替触发模式和独立模式。
22.、简述STM32的高级控制定时器TIM1的结构。
答:STM32提供了一个高级控制定时器(TIM1)。TIM1由一个16位的自动装载计数器组成,
它由一个可编程预分频器驱动。TIM1适合多种用途,包含测量输入信号的脉冲宽度,或者
产生输出波形。使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形
周期从几个微秒到几个毫秒的调节。 高级控制定时器TIM1和通用控制定时器TIMx是完
全独立的,它们不共享任何资源,因此可以同步操作。
五、编程与应用题
1、
在一个STM32点亮LED的程序中,部分代码如下:
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO__Pin = GPIO_Pin_2|GPIO_Pin_3;
GPIO__Speed = GPIO_Speed_50MHz;
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_SetBits和GPIO_ResetBits的原形如下,用这两个函数重写循环点亮LED
代码。第五章P107方法5
2、利用STM32的GPIO接口及其操作,实现4个LED按照LED1、LED2、LED3、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%。
解:不考
发布者:admin,转转请注明出处:http://www.yc00.com/num/1713878903a2336634.html
评论列表(0条)