件为 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、什么是嵌入式系统?嵌入式系统一般由哪几部分构成? 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*/ 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%。 解:不考