stm32试题及答案

件为 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_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);

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4