STM32习题Word文档下载推荐.docx
《STM32习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《STM32习题Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
q由于KeilμVision具有最为广泛的用户群,因此相应的代码资源非常丰富,读者可以轻松地找到各类编程资源以加速学习和开发过程。
2.简述基于ARMCortex-M3的STM32芯片特点。
ST公司的STM32系列芯片采用了ARMCortex-M3内核,其分为两个系列。
STM32F101系列为标准型,运行频率为36MHz;
STM32F103系列为标准型,运行频率为72MHz。
STM32全系列芯片都具有引脚到引脚一一对应的特点,并且相同封装的内部资源均相同,这就给用户升级带来很大方便。
3.简述STM32最小硬件开发系统的组成及其各部分的作用。
读者可以参阅正文中的第3节,其中包括如下几个部分:
q主芯片:
采用STM32系列,为整个开发系统的核心,本书所有的程序都运行在其中。
q晶体振荡部分:
提供了硬件时序以及实时时钟使用。
q供电部分:
采用AM1117为芯片提供稳定的3.3V电压。
q复位部分:
采用一个按键开关来实现。
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.18MHzB.50MHz
C.36MHzD.72MHz
4.当输出模式位MODE[1:
0]=“10”时,最大输出速度为(B
A.10MHzB.2MHz
C.50MHzD.72MHz
1.简述不同复用功能的重映射。
为了优化不同引脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。
这时,复用功能不再映射到它们原始分配的引脚上。
在程序上,是通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)来实现引脚的重新映射。
各个复用功能的重映射可以参阅正文的介绍,由于内容比较多,正文介绍非常详细,这里省略。
2.简述STM32的GPIO的一些主要特点(至少5个)。
主要特点如下:
q通用I/O,可以作为输出、输入等功能。
q单独的位设置或位清除。
q外部中断/唤醒线。
q复用功能(AF)和重映射。
qGPIO锁定机制。
四、编程题
编写一个初始化定时器的程序。
由于还没有讲到定时器相关的知识,所以这里旨在让读者给出定时器对GPIO端口的设置要求,程序示例如下:
GPIO_InitTypeDefGPIO_InitStructure;
/*GPIOCConfiguration:
Pin6,7,8and9inOutput*/
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.16B.8
C.32D.4
2.STM32主存储块的页大小为(
A
)字节。
A.1KB.3K
C.2KD.4K
3.用户选择字节的大小为(
A.512字节B.2K
C.1KD.128K
4.下列哪些不是STM32闪存存储器的特点(
C
A.大容量B.高速
C.掉电不保存D.具有选择字节加载器
11.6
1.STM32芯片内部集成的
12
位ADC是一种逐次逼近型模拟数字转换器,具有
18
个通道,可测量
16
个外部和
2
个内部信号源。
2.在STM32中,只有在
规则通道
的转换结束时才产生DMA请求,并将转换的数据从
ADC_DR
寄存器传输到用户指定的目的地址。
3.在有两个ADC的STM32器件中,可以使用
双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.SRAMB.Flash
C.ADC_JDRx寄存器D.ADC_CR1
3.STM32规则组由多达(
)个转换组成。
A.16B.18
C.4D.20
4.在STM32中,(A
)寄存器的ALIGN位选择转换后数据储存的对齐方式。
A.ADC_CR2B.ADC_JDRx
C.ADC_CR1D.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
个产生事件/中断要求的边沿检测器组成。
每个输入线可以独立地配置
输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)
每个输入线都可以被独立的屏蔽。
挂起寄存器
保持着状态线的中断要求。
3.STM32的EXTI线16连接到
PVD输出
。
4.STM32的EXTI线17连接到
RTC闹钟事件
5.STM32的EXTI线18连接到
USB唤醒事件
1.ARMCortex-M3不可以通过(
)唤醒CPU。
A.I/O端口B.RTC闹钟
C.USB唤醒事件D.PLL
2.STM32嵌套向量中断控制器(NVIC)具有(
)个可编程的优先等级。
A.16B.43
C.72D.36
3.STM32的外部中断/事件控制器(EXTI)支持(C
)个中断/事件请求。
C.19D.36
1.简述嵌套向量中断控制器(NVIC)的主要特性。
STM32的嵌套向量中断控制器(NVIC)管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现低延迟的中断处理,并有效地处理晚到的中断。
STM32嵌套向量中断控制器(NVIC)的主要特性如下:
q具有43个可屏蔽中断通道(不包含16个Cortex-M3的中断线)。
q具有16个可编程的优先等级。
q可实现低延迟的异常和中断处理。
q具有电源管理控制。
q系统控制寄存器的实现。
四、编程题13.7
USART为通用同步异步收发器,其可以与使用工业标准
NRZ
异步串行数据格式的外部设备之间进行全双工数据交换。
2.STM32的USART可以利用
分数波特率
发生器提供宽范围的波特率选择。
3.智能卡是一个
单线半双工
通信协议,STM32的智能卡功能可以通过设置USART_CR3寄存器的
SCEN
位来选择。
4.STM32提供了CAN总线结构,这是一种
基本扩展
CAN(BasicExtendedCAN),也就是
bxCAN
1.STM32的USART根据(
)寄存器M位的状态,来选择发送8位或者9位的数据字。
A.USART_CR1B.USART_CR2
C.USART_BRRD.USART_CR3
2.STM32的bxCAN的主要工作模式为(ABD
A.初始化模式B.正常模式
C.环回模式D.睡眠模式
3.在程序中,可以将CAN_BTR寄存器的(
AB
)位同时置1,来进入环回静默模式。
A.LBKMB.SILM
C.BTRD.以上都不是
1.简述STM32的USART的功能特点。
、
STM32的USART为通用同步异步收发器,其可以与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。
USART还可以利用分数波特率发生器提供宽范围的波特率选择。
STM32的USART支持同步单向通信和半双工单线通信。
同时,其也支持LIN(局部互连网),智能卡协议和IrDA(红外数据)SIRENDEC规范,以及调制解调器(CTS/RTS)操作。
STM32还具备多处理器通信能力。
另外,通过多缓冲器配置的DMA方式,还可以实现高速数据通信。
15.6
1.系统计时器(SysTick)提供了1个
24位、降序、零约束、写清除
的计数器,具有灵活的控制机制。
2.STM32的通用定时器TIM,是一个通过
可编程预分频器
驱动的
位自动装载计数器构成。
3.STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为
向上计数
模式、
向下计数
模式和
中央对齐
4.ST公司还提供了完善的TIM接口库函数,其位于
stm32f10x_tim.c
stm32f10x_tim.h
1.通用定时器TIMx的特性(
A.具备16位向上,向下,向上/向下自动装载计数器。
B.具备16位可编程预分频器。
C.具备4个独立通道。
D.可以通过事件产生中断,中断类型丰富,具备DMA功能。
2.通用定时器TIMx的特殊工作模式包括(
A.输入捕获模式B.PWM输入模式
C.输出模式D.单脉冲模式(OPM)
3.STM32的可编程通用定时器的时基单元包含(ABC
A.计数器寄存器(TIMx_CNT)
B.预分频器寄存器(TIMx_PSC)
C.自动装载寄存器(TIMx_ARR)
D.以上都不是
1.简述STM32TIM的计数器模式。
STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为向上计数模式、向下计数模式和中央对齐模式(向上/向下计数)。
给出PWM模式下配置TIM外设的程序代码。
/*TimeBaseconfiguration*/
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);
/*Channel1,2,3and4ConfigurationinPWMmode*/
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_Pulse=CCR3_Val;
TIM_OC3Init(TIM1,&
TIM_OCInitStructure.TIM_Pulse=CCR4_Val;
TIM_OC4Init(TIM1,&
/*TIM1counterenable*/
TIM_Cmd(TIM1,ENABLE);
/*TIM1MainOutputEnable*/
TIM_CtrlPWMOutputs(TIM1,ENABLE);
16.5
1.除了通用定时器外,STM32还提供了一个高级控制定时器TIM1
TIM1
由一个
位的自动装载计数器组成,它由一个
驱动。
2.TIM1的
溢出/下溢时更新事件(UEV)
只能在重复向下计数达到0的时候产生。
这对于能产生PWM信号非常有用。
3.TIM1具备
位可编程预分频器,时钟频率的分频系数为
1~65535
之间的任意数值。
4.ST公司还提供了完善的TIM1接口库函数,其位于
stm32f10x_tim1.c
stm32f10x_tim1.h
1.STM32的可编程TIM1定时器的时基单元包含(
A.计数器寄存器(TIM1_CNT)
B.预分频器寄存器(TIM1_PSC)
C.自动装载寄存器(TIM1_ARR)
D.周期计数寄存器(TIM1_RCR)
2.高级定时器TIM1的特性(ABCD
A.具备16位上,下,上/下自动装载计数器
C.可以在指定数目的计数器周期之后更新定时器寄存器。
3.定时器TIM1的特殊工作模式包括(ABCD
C.编码器接口模式D.单脉冲模式(OPM)
1.简述STM32的高级控制定时器TIM1的结构。
STM32提供了一个高级控制定时器(TIM1)。
TIM1由一个16位的自动装载计数器组成,它由一个可编程预分频器驱动。
TIM1适合多种用途,包含测量输入信号的脉冲宽度,或者产生输出波形。
使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。
高级控制定时器TIM1和通用控制定时器TIMx是完全独立的,它们不共享任何资源,因此可以同步操作。
17.7
1.STM32系列ARMCortex-M3芯片支持三种复位形式,分别为
系统
复位、
电源
复位和
备份区域
复位。
2.STM32还提供了用户可通过多个预分频器,可用来进一步配置
、高速
APB(APB2)
和低速
APB(APB1)
域的频率。
3.用户可用通过
32.768k
Hz外部振荡器,为系统提供更为精确的主时钟。
在时钟控制寄存器
RCC_CR
中的
HSERDY
位用来指示高速外部振荡器是否稳定。
4.ST公司还提供了完善的RCC