1. 到目前为止,Cortex 系列正式发布的版本为 Cortex-A8、Cortex-R4和Cortex_M3,他们全部实现了Thumb-2 指令集(或子集),可满足不同的性能、价格市场需求。 2.CM3处理器的主要性能指标 (1)Cortex-M3 处理器是一个低功耗的处理器,具有门数少, 中断延迟小, 调试容易等特点。它是为功耗和价格敏感的应用领域而专门设计的、具有较高性能的处理器,应用范围可从低端微控制器到复杂 SoC。 (2)Cortex-M3 处理器使用了 ARM v7-M 体系结构,是一个可综合的、高度可配置的处理器。它包含了一个高效的哈佛结构三级流水线,可提供 1.25DMIPS/MHz 的性能。在一个具有 32个物理中断的标准处理器实现上(0.13um Metro @50MHz),达到了突出的 0.06mW/MHz 能效比。 (3)为降低器件成本,Cortex-M3 处理器采用了与系统部件紧耦合的实现方法,来缩小芯片面积,其内核面积比现有的三级流水线内核缩小了 30%。Cortex-M3 处理器实现了 Thumb-2指令集架构,具有很高的代码密度,可降低存储器需求,并能达到非常接近 32 位 ARM 指令集的性能。 (4)Cortex-M3 处理器在高性能内核基础上,集成了多种系统外设,可以满足不同应用对成本和性能的要求。处理器是全部可综合、高度可定制的(包括物理中断、系统调试等),Cortex-M3 还有一个可选的细粒度的(fine-granularity)存储器保护单元(MPU)和一个嵌入式跟踪宏单元(ETM)。 3. Cortex-M3内核具有如下特点: - ARMv7-M Thumb-2 指令集架构(ISA)的子集,包括了所有 16 位和 32 位的 Thumb-2。
- 基本指令,不包含 SIMD、DSP 和 ARM 系统访问。
- 采用哈佛处理器结构,在取指的同时可以读取/存储数据。
- 三级流水线。
- 单周期32位乘法。
- 硬件除法。
- Thumb和Debug状态。
- Handler和Thread模式。
- 处理器状态自动保存与恢复,保证低延迟的ISR进入和退出。
- 可打断-继续LDM/STM, PUSH/POP。
- 支持ARMv6的BE8/LE(大小端)。
- ARMv6不对齐访问。
4. 在STM32F10x中,有 3 个不同的启动模式,这些模式可以通过引脚 BOOT[1:0] 来选择, 启动模式选择引脚 Boot模式 说明 BOOT1 BOOT0 X 0 用户闪存存储器 用户闪存存储器被选作启动空间 0 1 系统存储器 系统存储器被选作启动空间 1 1 嵌入式SRAM 嵌入式SRAM 被选作启动空间 5. 每个I/O 端口的特有的硬件特点在数据手册中已经列出来了,通用 I/O 的每个端口位可以由软件单独的配置成以下几种模式: - 输入浮空
- 输入上拉
- 输入下拉
- 模拟输入
- 开漏输出
- 推挽式输出
- 推挽式复用功能
- 开漏复用功能
- 2.STM32的所有端口都有外部中断能力。当使用 外部中断线 时,相应的引脚必须配置成 输入模式 。
- 3.STM32具有单独的位设置或位清除能力。这是通过GPIOx_BSRR 和 GPIOx_BRR 寄存器来实现的。
6.为了优化不同引脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。这时,复用功能不再映射到它们原始分配的引脚上。在程序上,是通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR) 来实现引脚的重新映射 7.当输出模式位MODE[1:0]=“10”时,最大输出速度为( B )。 A.10MHz B.2MHz C.50MHz D.72MHz 8.简述不同复用功能的重映射。 答:为了优化不同引脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。这时,复用功能不再映射到它们原始分配的引脚上。在程序上,是通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)来实现引脚的重新映射。各个复用功能的重映射可以参阅正文的介绍,由于内容比较多,正文介绍非常详细,这里省略。 9.简述STM32的GPIO的一些主要特点(至少5个)。 答:主要特点如下: - 通用I/O,可以作为输出、输入等功能。
- 单独的位设置或位清除。
- 外部中断/唤醒线。
- 复用功能(AF)和重映射。
- GPIO锁定机制。
10.STM32的嵌套向量中断控制器(NVIC) 管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现低延迟的中断处理,并有效地处理晚到中断。 11.STM32的外部中断/事件控制器(EXTI)由 19 个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以被独立的屏蔽。挂起寄存器保持着状态线的中断要求。 - 12.ARM Cortex-M3不可以通过( D )唤醒CPU。
- A.I/O端口 B.RTC 闹钟
- C.USB唤醒事件 D.PLL
- 13.STM32嵌套向量中断控制器(NVIC) 具有( A ) 个可编程的优先等级。
- A.16 B.43
- C.72 D.36
- 14.STM32的外部中断/事件控制器(EXTI)支持( C )个中断/事件请求。
- A.16 B.43
- C.19 D.36
15.简述嵌套向量中断控制器(NVIC)的主要特性。 答:STM32的嵌套向量中断控制器(NVIC) 管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现低延迟的中断处理,并有效地处理晚到的中断。STM32嵌套向量中断控制器(NVIC)的主要特性如下: - 具有43 个可屏蔽中断通道(不包含16 个Cortex-M3 的中断线)。
- 具有16 个可编程的优先等级。
- 可实现低延迟的异常和中断处理。
- 具有电源管理控制。
- 系统控制寄存器的实现。
16.STM32的USART可以利用分数波特率发生器提供宽范围的波特率选择。 17.STM32的 USART 为通用同步异步收发器, 18.STM32的USART根据( A )寄存器M位的状态,来选择发送8位或者9位的数据字。 A.USART_CR1 B.USART_CR2 C.USART_BRR D.USART_CR3 19.简述STM32的USART的功能特点。、 答:STM32的USART为通用同步异步收发器,其可以与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART还可以利用分数波特率发生器提供宽范围的波特率选择。 STM32的USART支持同步单向通信和半双工单线通信。同时,其也支持LIN(局部互连网),智能卡协议和IrDA(红外数据)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。STM32还具备多处理器通信能力。另外,通过多缓冲器配置的DMA方式,还可以实现高速数据通信。 20.系统计时器(SysTick)提供了1个 24位的计数器,具有灵活的控制机制。 21.STM32的通用定时器TIM,是一个通过可编程预分频器驱动的 16 位自动装载计数器构成。 22.STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为向上计数模式、向下计数模式和中央对齐模式。 23.通用定时器TIMx的特性( ABCD )。(多选) A.具备16位向上,向下,向上/向下自动装载计数器。 B.具备16位可编程预分频器。 C.具备4个独立通道。 D.可以通过事件产生中断,中断类型丰富,具备DMA功能。 24.通用定时器TIMx的特殊工作模式包括( ABCD )。(多选) A.输入捕获模式 B.PWM 输入模式 C.输出模式 D.单脉冲模式(OPM) 25.STM32的可编程通用定时器的时基单元包含( ABC )。(多选) A.计数器寄存器(TIMx_CNT) B.预分频器寄存器(TIMx_PSC) C.自动装载寄存器(TIMx_ARR) D.以上都不是 26.简述STM32TIM的计数器模式。 答:STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为向上计数模式、向下计数模式和中央对齐模式(向上/向下计数)。 27.除了通用定时器外,STM32还提供了一个高级控制定时器 TIM1 。 TIM1 由一个 16 位的自动装载计数器组成,它由一个可编程预分频器驱动。 28.TIM1的溢出/下溢时更新事件(UEV) 只能在重复向下计数达到0的时候产生。这对于能产生PWM信号非常有用。 29.TIM1具备 16 位可编程预分频器,时钟频率的分频系数为 1~65535 之间的任意数值。 30.STM32的可编程TIM1定时器的时基单元包含( ABCD )。(多选) A.计数器寄存器(TIM1_CNT) B.预分频器寄存器 (TIM1_PSC) C.自动装载寄存器 (TIM1_ARR) D.周期计数寄存器 (TIM1_RCR) 31.高级定时器TIM1的特性( ABCD )。(多选) A.具备16位上,下,上/下自动装载计数器 B.具备16位可编程预分频器。 C.可以在指定数目的计数器周期之后更新定时器寄存器。 D.可以通过事件产生中断,中断类型丰富,具备DMA功能。 32.定时器TIM1的特殊工作模式包括( ABCD )。(多选) A.输入捕获模式 B.PWM 输入模式 C.编码器接口模式 D.单脉冲模式(OPM) 33.STM32提供了三种不同的时钟源,其都可被用来驱动系统时钟SYSCLK,这三种时钟源分别为( ABC )。 A.HSI振荡器时钟 B.HSE振荡器时钟 C.PLL时钟 D.HLI振荡时钟 34.在STM32中,当( AB )发生时,将产生电源复位。(多选) A.从待机模式中返回 B.上电/掉电复位(POR/PDR复位) C.NRST管脚上的低电平 D.PLL 35.Cortex-M处理器采用的架构是( D ) (A)v4T (B)v5TE (C)v6 (D)v7 36.NVIC可用来表示优先权等级的位数可配置为是( D ) (A)2 (B)4 (C)6 (D)8 37.Cortex-M系列正式发布的版本是( A ) (A)Cortex-M3 (B)Cortex-M4 (C)Cortex-M6 (D)Cortex-M8 38.Cortex-M3的提供的流水线是( B ) (A)2级 (B)3级 (C)5级 (D)8级 39.Context – M3处理器的寄存器r14代表( B ) (A)通用寄存器 (B)链接寄存器 (C)程序计数器 (D)程序状态寄存器 40.Cortex – M3使用的存储器格式是( D ) (A)小端格式 (B)大端格式 (C)小端或大端格式 (D)没有正确答案 41.每个通用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 42.( A )寄存器的目的就是用来允许对GPIO寄存器进行原子的读/修改操作 (A)GPIOX_BSRR和GPIOX_BRR (B)GPIOX_CRL和GPIOX_CRH(C)GPIOX_BSRR和GPIOX_LCKR (D)GPIOX_IDR和GPIOX_ODR 43.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为( A )时可以是激活的或者非激活的 44每个I/O端口位可以自由的编程,尽管I/O端口寄存器必须以( D )的方式访问 (A)16位字 (B)16位字节 (C)32位字节 (D)32位字 45.向量中断控制器最多可支持( C )个IRQ中断 (A)127 (B)128 (C)240 (D)255 46.关于中断嵌套说法正确的是( B ) (A)只要响应优先级不一样就有可能发生中断嵌套 (B)只要抢占式优先级不一样就有可能发生中断嵌套 (C)只有抢占式优先级和响应优先级都不一才有可能发生中断嵌套 (D)以上说法都不对 47.在STM32107向量中断控制器管理下,可将中断分为( B )组 (A)4 (B)5 (C)6 (D)7 48.中断屏蔽器能屏蔽( B ) (A)所有中断和异常 (B)除了NMI外所有异常和中断 (C)除了NMI、异常所有其他中断 (D)部分中断 49PWM是( A ) - 脉冲宽度调制 (B)脉冲频率调制 (C)脉冲幅度调制 (D)脉冲位置调制
50以下为STM32的GPIO端口配置寄存器的描述,在GPIO控制LED电路设计时,要使最大输出速度为10MHz,应该设置( B ) (A)CNFy[1:0] (B)MODEy[1:0] 51以下为GPIO端口配置寄存器的描述,在GPIO控制LED电路设计时,要使最大输出速度为2MHz,应该设置MODE[1:0]值为( C )
25. 已知TIM1定时器的起始地址为0x4001 2C00,则定时器1的捕获/比较寄存器1的地址为( D ) (A)0x4001 2C20 (B)0x4001 2C2C - 0x4001 2C38 (D)0x4001 2C34
53SysTick定时器校正值为( B ) (A)9000 (B)10000 54.SysTick定时器的中断号是( C ) (A)4 (B)5 (C)6 (D)7 55.STM32的USART根据( A )寄存器M位的状态,来选择发送8位或者9位的数据字。 A.USART_CR1 B.USART_CR2 C.USART_BRR D.USART_CR3 56.Cortex-M3系列处理器支持Thumb指令集。( 错 ) 57.Cortex-M3系列处理器支持Thumb-2指令集。( 对 ) 58.Contex-M3系列处理器内核采用了哈佛结构的三级流水线。( 对 ) 59.Cortex-M系列不支持Thumb-2指令集。( 错 ) 60.Contex-M3系列处理器内核采用了冯诺依曼结构的三级流水线。( 错 ) 61.STM32系列MCU在使用电池供电时,提供3.3~5V的低电压工作能力。( 错 ) 62.Context-M3处理器可以使用4个堆栈。( 错 ) 63.在系统复位后,所有的代码都使用Main栈。( 对 ) 64.在系统层,处理器状态寄存器分别为:APSR,IPSR, PPSR。( 错 ) 65.APSR程序状态寄存器的28位,当V=0,表示结果为无益处。( 对 ) 66.Cortex-M3只可以使用小端格式访问代码。( 错 ) 67.所谓不可屏蔽的中断就是优先级不可调整的中断。( 错) 68.向量中断控制器只负责优先级的分配与管理,中断的使能和禁止和它无关。( 错 ) 69.Cortex-M3体系架构中,有了位带位操作后,可以使用普通的加载/存储指令来对单一的比特进行读写。(对) 70.Cortex-M3体系架构中,有两个区中实现了位带:一个是 SRAM 区的最低 1MB 范围,第二个则是片内外设 区的最低 1MB 范围。(对) 71.STM32的串口既可以工作在全双工模式下,也可工作在半双工模式下。( 对) 72.STM32的串口既可以工作在异步模式下,也可工作在同步模式下。(对) 73.每个I/O端口位可以自由的编程,尽管I/O端口寄存器必须以32位字的方式访问。(对) 74.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为输入时可以是激活的或者非激活的。( 对) 75.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为输出时可以是激活的或者非激活的。(错 ) 76.端口输入数据寄存器的复位值为00000000H。( 对) 77.端口输入数据寄存器位[15:0]是只读的,并且仅能按字访问,它们包含相关I/O端口的输入值。(对 ) 78.端口输入数据寄存器位[7:0]是只读的,并且仅能按字访问,它们包含相关I/O端口的输入值。( 错) 79.从是否可编程的角度 ,中断可分为固定优先级中断和可调整优先( 对 ) 80.从某种意义上说,异常就是中断。(对 ) 81.所谓不可屏蔽的中断就是优先级不可调整的中断。( 错) 82.向量中断控制器只负责优先级的分配与管理,中断的使能和禁止和它无关。(错) 83.中断的优先级和它在中断向量表里的位置没有关系。( 错) 84.当抢占式优先级不一样时,一定会发生抢占。( 错) 85.向量中断控制器允许有相同的优先级。( 对) 86如果两个中断的抢占式优先级相同,则按先来后到的顺序处理。(对 ) - ST公司的STM32系列芯片采用了 Cortex-M3 内核,其分为两个系列。 STM32F101
系列为标准型,运行频率为 36MHZ ; STM32F103 系列为标准型,运行频率为 72MHZ 。 88.当STM32的I/O端口配置为输入时,输出缓冲器被禁止,施密特触发输入被激活。根据输入配置(上拉,下拉或浮动)的不同,该引脚的弱上拉和下拉电阻被连接。出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对输入数据寄存器的读访问可得到I/O状态。 89.STM32的所有端口都有外部中断能力。当使用外部中断线时,相应的引脚必须配置成输入模式。 90.STM32具有单独的位设置或位清除能力。这是通过 GPIOX_BSRR 和 GPIOX_BRR 寄存器来实现的。 91.为了优化不同引脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。这时,复用功能不再映射到它们原始分配的引脚上。在程序上,是通过设置复用重映射和调试I/O口配置寄存器(AFIO_MAPR)来实现引脚的重新映射。 92、什么是嵌入式系统?嵌入式系统一般由哪几部分构成? 93、Cortex-M3的处理器有那两种工作模式和状态?如何进行工作模式和状态的切换? 3Cortex-M3的存储空间可以分为哪几个部分,每一部分的地址范围是怎样的? 94、STM32的GPIO的配置模式有那几种?如何进行配置模式的配置? 95、简述STM32的不同复用功能的重映射功能。 96、简述STM32的优先级划分与抢占的过程。 97、简述STM32的USART的功能特点。 98、如何设置STM32的串口的波特率。 99、STM32高级定时器有哪些功能? - 已知STM32的系统时钟为72MHz,如何设置相关寄存器,实现20ms定时?
101利用STM32的GPIO接口及其操作,实现4个LED按照LED1、LED2、LED3、LED4的顺序循环显示。硬件连接图如图所示。 102已知系统时钟为72MHz,采用定时器TIM1产生周期为100ms的定时时间间隔并通过LED发光二极管指示定时过程。 103如果用串口1发送数据,已知波特率为2.4Kbp/s,8位数据,2位停止位,写出串口的初始化程序。 104::广义的嵌入式系统是带有微处理器的专用软、硬件系统,狭义的嵌入式系统是指微处理器中带有嵌入式操作系统(Embedded Operating System)的专用软、硬件系统 105 STM32 是基于ARM公司Cortex-M3核的32位 106 GPIO口输入的上拉电阻和下拉电阻对输入的不同在于:有内部上拉时,输入悬空时为1,无内部上拉时,输入悬空时为0. 107输入输出数据寄存器的作用是定时将数据采样到输入数据寄存器 输出到输出数据寄存器。 108 STM32的工作电压(VDD)为2.0~3.6V。 109 STM32的复位电路为低电平复位。 110.ContexM3的堆栈是向下生长的满栈, 111. 默认情况下,外部中断0和外部中断1哪个优先级高? 0 中断的默认排序是异常向量表中位置靠前的优先级越高。 112. 对异常向量表中默认排序可通过设置抢占式优先级和响应式优先级进行修改。 113.具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。 114.抢占式优先级相同时,如同时产生中断,响应式优先级高的中断先得到处理。 如两种优先级都相同时,默认优先级高的中断先得到处理。 115 根据下图说明STM32F10X系列芯片的GPIO引脚的功能。并说明对应功能时,哪部分开关起作用(在图上标注)。 答: 模拟输入:TTL被强置为0,弱上拉下拉断开,CMOS断开。 浮空输入:CMOS断开,TTL被激活,弱上拉下拉断开。 上拉输入:CMOS断开,TTL被激活,弱上拉接通,下拉断开。 下拉输入:CMOS断开,TTL被激活,弱上拉断开,下拉接通。 开漏输出:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将端口置于高阻状态(P-MOS从不被激活)、TTL被激活、弱上拉下拉被禁止。 推挽输出:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将激活P-MOS、TTL被激活、弱上拉下拉被禁止。 复用开漏输出:开漏输出时,输出缓冲器被打开。 复用推挽输出:推挽输出时,输出缓冲器被打开。 116将GPIO的PD2配置成通用开漏输出,最大速度2MHz应如何配置以下寄存器。 答: GPIOD 0110左移8位 配置:GPIOD->CRL =(0x06 << 8); /*即:6左移8位(D口) [2]P113 01:通用开漏输出模式 10:输出模式,最大速度2MHz*/ 117.堆栈指令:PUSH {R0}后,请画出堆栈会如何变化? 指令执行前:
118. 堆栈指令:POP {R0}后,请画出堆栈会如何变化? 答:
119:根据补充下面程序并进行注释: - (1)void LED_Init(void)
- {
-
- RCC->APB2ENR|=1<<6; //使能PORTE时钟
-
- GPIOE->CRL&=0X00000000;
- GPIOE->CRL|=0X33333333;//PE.0-PE.7推挽输出
- GPIOE->ODR|=0xFF; //PE.0-PE.7输出高
- }
-
- (2) void Timerx_Init(u16 arr,u16 psc)
- {
- RCC->APB1ENR|=1<<1;//TIM3时钟使能
- TIM3->ARR=arr; //设定计数器自动重装值//刚好1ms
- TIM3->PSC=psc; //预分频器7200,得到10Khz的计数时钟
-
- TIM3->DIER|=1<<0; //允许更新中断
- TIM3->DIER|=1<<6;
-
- //允许触发中断
-
- TIM3->CR1|=0x01; //使能定时器3
-
- MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2
- }
-
- (3) void MYRCC_DeInit(void)
- {
- RCC->APB1RSTR = 0x00000000;//复位结束
- RCC->APB2RSTR = 0x00000000;
-
- RCC->AHBENR = 0x00000014; //睡眠模式闪存和SRAM时钟使能.其他关闭.
- RCC->APB2ENR = 0x00000000; //外设时钟关闭.
- RCC->APB1ENR = 0x00000000;
- RCC->CR |= 0x00000001; //使能内部高速时钟HSION
- RCC->CFGR &= 0xF8FF0000;
- RCC->CR &= 0xFEF6FFFF; //复位HSEON,CSSON,PLLON
- RCC->CR &= 0xFFFBFFFF; //复位HSEBYP
- RCC->CFGR &= 0xFF80FFFF; //复位PLLSRC, PLLXTPRE, PLLMUL[3:0] and USBPRE
- RCC->CIR = 0x00000000; //关闭所有中断
- }
复制代码
完整的Word格式文档51黑下载地址:
|