您好,欢迎访问三七文档
嵌入式技术期末复习讲义电气工程与控制科学学院主讲:孙冬梅教授整理:自1305陈晨第1页共10页嵌入式期末复习讲义题型:简答题(10分×6)+分析题(10分×2)+编程题(10分×2)考点1:开发板使用的CPU全称是什么?每个字母分别表示什么意思?Flash和RAM各多大?外设有哪些?答:①CPU全称是STM32F107VCT6,字母含义如下:STM32:产品系列是基于ARM的32位微处理器;F:产品类型是通用型;107:产品子系列是互联型(105也为互联型);V:引脚数目为100个;C:闪存容量是256KB;T:封装类型是LQFP;6:工业级温度范围是-40℃~85℃。②CPU的Flash大小为256KB,RAM大小为64KB,外设如下:考点2:新建项目的步骤有哪些?(上机)答:1.创建项目。将代码写入新建的main.c文件中;2.拷贝库文件。将Libraries文件夹中的CMSIS和STM32F10x_StdPeriph_Driver文件夹拷入工程文件夹中;3.修改IAR工程文件夹。将所用的库函数文件插入工程文件夹中;4.修改输出文件位置及配置信息。主要修改CPU类型、预编译头文件位置、预定义宏;5.修改仿真器为J-Link,并将J-Link/J-Trace→Connection→Interface改为SWD;6.进行编译、链接、执行。注意三种不同的编译方式,Complie:单个文件的编译,将源代码转成obj文件,需要指定输出文件位置,只编译选定的目标;RebuildAll:将obj链接后生成发布,所有文件重新链接,有的开发环境中叫做link;Make:编译链接选定目标,只编译上次编译变化的文件,以减少重复劳动,节省时间。考点3:开发板基本电路有哪些,它们所使用的元器件大小容量是什么?答:1.复位电路,在CPU的14号引脚,如图所示:第2页共10页2.晶振电路,在CPU的12号引脚,如图所示:3.电源电路,在CPU的37号引脚,如图所示:4.LED电路:四个LED灯分别接开发板的83,84,85,88号引脚,如图所示:第3页共10页考点4:LED灯闪烁基础例程,理解每句话的含义,画出电路原理图?答://功能:不用库,在学习板上实现1个LED闪烁#includestm32f10x.hvoidDelay(unsignedintt);main(){RCC-APB2ENR=15;解释:该句话是1左移5位,在《微控制器手册》P71有具体介绍。如图所示:这句话的意思是将IO端口的D时钟使能端打开(置1),因为在位5,所以要左移5位,RCC是时钟使能的意思。GPIOD-CRL=28;解释:该句话是2左移8位(D口),在《微控制器手册》P113有具体介绍。这句话的意思是将PD2寄存器的GPIOD口配置成00(通用推挽输出模式)以及10(最大速度2MHz),即0010(就是2),因为PD2的寄存器位于8-11位,所以需左移8位。while(1){GPIOD-BSRR=12;解释:BSRR叫做端口位设置/清除寄存器,给它置1,灯会亮。Delay(500000);GPIOD-BRR=12;解释:BRR叫做端口位清除寄存器,给它置1,灯熄灭。Delay(500000);}第4页共10页}voidDelay(unsignedintt){while(t--);}原理图如图所示:考点5:在使LED灯闪烁时,需要对GPIO口进行配置,是如何配置的,步骤是什么?答:GPIO配置步骤:1.打开APB2外设时钟使能:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);2.配置GPIO管脚:GPIO_InitStructure.GPIO_Pin=;//端口号有GPIO0-153.配置选中管脚的速率:GPIO_InitStructure.GPIO_Speed=GPIO_Speed_;常用速率主要有:10MHz、2MHz、50MHz4.配置选中管脚的工作状态:GPIO_InitStructure.GPIO_Mode=GPIO_Mode_;常用的工作状态如图所示:考点6:如何使用时钟树,将系统的频率改为72MHz?答:1.在CR里打开HSE并等待打开成功;2.在CFGR里设置预分频值,使HCLK=SYSCLK,PCLK2=HCLK,PCLK1=HCLK/2;3.在CFGR2中设置PREDIV1的来源为PLL2,预分频值为5;PLL2为HSE(25M)/5*8(=40M)第5页共10页所得;在CR中使能PLL2并等待设置成功;4.在CFGR中设置PLLCLK的来源为PREDIV1,倍频值为9(40/5*9=72M为PLLCLK的频率),在CR中使能PLL并等待设置成功;5.在CFGR中设置SYSCLK为PLLCLK。完成系统时钟设置。考点7:什么是复用功能,怎么样配置才能产生复用?答:复用功能就是端口重复使用,不同功能的电路使用同一个端口。复用的配置:1.使用默认复用功能前必须对端口位配置寄存器编程,对于复用的输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入引脚必须由外部驱动。2.对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。3.如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。如果软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。考点8:LED灯闪烁引脚有两种方式,分别是灌电流和拉电流,请画出两种方式的电路图。答:电阻大小均为470。考点9:内存向量表,记住Flash空间、RAM空间、外设空间的地址范围?答:地址向量表如图所示:第6页共10页256KFlash空间地址范围:0x800000-0x803ffff128KRAM空间地址范围:0x2000000-0x20017fff外设地址范围:0x40000000以上都是考点10:按键控制LED灯闪烁时,如何配置按键?按键作为中断输入时,如何配置?答:1.按键的配置:选择I/O用途模式为通用输入,并且设置I/O口的输入状态。可以选择带上拉或下拉,也可以设置为悬空。为避免外部干扰引发不停地进入中断,当选择为悬空状态时应保证外部接有上拉或下拉电阻。程序:GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_Init(GPIOC,&GPIO_InitStructure);2.使用NVIC(嵌套向量中断控制器)进行配置:(1)GPIO引脚时钟使能:RCC_APB2PeriphClockCmd(2)GPIO引脚属性设置:GPIO_Init(3)外部中断配置:GPIO_EXTILineConfig(4)外部中断初始化:EXTI_InitEXTI_InitStructure.EXTI_Line=EXTI_Line0;//中断线EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//模式:中断请求/事件请求EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿触发EXTI_InitStructure.EXTI_LineCmd=ENABLE;//中断使能EXTI_Init(&EXTI_InitStructure);//进行初始化(5)NVIC设置开启复用功能时钟设置优先级组别:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);第7页共10页优先级初始化:NVIC_Init(&NVIC_InitStructure);设置抢占优先级和响应优先级:NVIC_InitStructure.NVIC_IRQChannelPreemptionPriorityNVIC_InitStructure.NVIC_IRQChannelSubPriority(6)中断服务程序的编写产生中断后,运行中断服务程序考点11:Systick是如何配置的?在有操作系统的时候,Systick是用来做什么用的?答:1.Systick是系统嘀嗒校准值寄存器,Systick的配置:当系统时钟跳动72M/1000次,进入一次中断。每进行一次中断,全局变量就减1,一直减到ntime=0,最后systick失能。2.在有操作系统的时候,Systick是给操作系统提供一个硬件的时钟,它在运行时每跳一下,定时器就会减1,当减到0时,自动重装初值,它起到了一个定时器的作用。考点12:按键去抖动,如何使用软件去按键抖动?答:按键在中断时往往用的是边沿触发,当检测到某一个边沿时,用软件执行延迟程序后,产生5到10ms的延迟,让前沿抖动消失后,再一次检测按键中断,如果仍然保持摁下状态,则产生中断。程序如下:voidEXTI0_IRQHandler(void){if(key1==0){Delay(10000);if(key1==0){if(EXTI_GetITStatus(EXTI_Line0)!=RESET){LEDTog(LED1);EXTI_ClearITPendingBit(EXTI_Line0);}}}while(key1==0);}考点13:定时计数器的配置(上机)答:以定时器5配置为例,配置1s,sMHz1100007200721,可以进行修改,程序如下:TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);//开时钟TIM_TimeBaseStructure.TIM_Period=(10000-1);TIM_TimeBaseStructure.TIM_Prescaler=(7200-1);//预分频第8页共10页产生一个脉冲的时间是1/10000s,到10000的时候进行中断TIM_TimeBaseStructure.TIM_ClockDivision=0;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure);TIM_ClearITPendingBit(TIM5,TIM_IT_Update);//清除RCC的中断待处理位TIM_ITConfig(TIM5,TIM_IT_Update,ENABLE);//使能指定的TIM5中断TIM_Cmd(TIM5,ENABLE);//使能定时器考点14:USART的配置,发送数据的配置,接收数据的配置?串口如何发送数据?答:1.USART的配置:①打开时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA,ENABLE);②配置波特率:USART_InitStructure.USART_BaudRate=115200;③配置数据位大小:USART_InitStructure.USART_WordLength=USART_WordLength_8b;④配置停止位大小:USART_InitStructure.USART_StopBits=USART_StopBits_1;⑤配置校验位:USART_InitStructure.USART_Parity=USART_Parity_N
本文标题:嵌入式期末复习
链接地址:https://www.777doc.com/doc-7242726 .html