嵌入式作业题答案概要.docx

上传人:b****6 文档编号:7680300 上传时间:2023-05-11 格式:DOCX 页数:27 大小:102.68KB
下载 相关 举报
嵌入式作业题答案概要.docx_第1页
第1页 / 共27页
嵌入式作业题答案概要.docx_第2页
第2页 / 共27页
嵌入式作业题答案概要.docx_第3页
第3页 / 共27页
嵌入式作业题答案概要.docx_第4页
第4页 / 共27页
嵌入式作业题答案概要.docx_第5页
第5页 / 共27页
嵌入式作业题答案概要.docx_第6页
第6页 / 共27页
嵌入式作业题答案概要.docx_第7页
第7页 / 共27页
嵌入式作业题答案概要.docx_第8页
第8页 / 共27页
嵌入式作业题答案概要.docx_第9页
第9页 / 共27页
嵌入式作业题答案概要.docx_第10页
第10页 / 共27页
嵌入式作业题答案概要.docx_第11页
第11页 / 共27页
嵌入式作业题答案概要.docx_第12页
第12页 / 共27页
嵌入式作业题答案概要.docx_第13页
第13页 / 共27页
嵌入式作业题答案概要.docx_第14页
第14页 / 共27页
嵌入式作业题答案概要.docx_第15页
第15页 / 共27页
嵌入式作业题答案概要.docx_第16页
第16页 / 共27页
嵌入式作业题答案概要.docx_第17页
第17页 / 共27页
嵌入式作业题答案概要.docx_第18页
第18页 / 共27页
嵌入式作业题答案概要.docx_第19页
第19页 / 共27页
嵌入式作业题答案概要.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

嵌入式作业题答案概要.docx

《嵌入式作业题答案概要.docx》由会员分享,可在线阅读,更多相关《嵌入式作业题答案概要.docx(27页珍藏版)》请在冰点文库上搜索。

嵌入式作业题答案概要.docx

嵌入式作业题答案概要

第1章嵌入式系统概述

1.什么是嵌入式系统?

嵌入式系统的组成?

答:

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

组成:

嵌入式处理器、外围设备、操作系统、应用软件。

2.典型的嵌入式处理器有哪些?

3.答:

微处理器、微控制器、DSP处理器、片上系统SOC。

4.典型的RTOS操作系统有哪些?

5.答:

嵌入式Linux、μCLinux、WindowsEmbeddedCE、WindowsEmbeddedCompact7、μC/OS-II、μC/OS-III、VxWorks、eCos等。

6.列举身边的嵌入式应用产品?

7.嵌入式系统的设计可以分成四个阶段:

需求分析、架构设计和概要设计、详细设计和开发、测试反馈。

第2章Cortex-M体系结构

8.ARMCortex系统的处理器分为:

____A_____、____R_____、_____M_____。

9.ARMCortex-M3为32位微控制器,请问32位指的是CPU字长。

10.3、Cortex-M3处理器能够以小端格式或大端格式访问存储器中的数据字,而访问代码时始使用小端格式。

11.ARMCortex-M3体系结构采用哈佛总线结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行进行。

12.CM3寄存器分为通用寄存器,包括R0~R15。

和特殊功能寄存器,包括程序状态寄存器、异常屏蔽寄存器、控制寄存器。

13.寄存器R13是堆栈指针寄存器。

14.寄存器R14是程序连接寄存器。

15.寄存器R15是程序PC。

16.CM3的堆栈指针分为__MSP__、__PSP_。

存储器堆栈堆栈分为:

向上生长(即向高地址方向生长)的递增堆栈;向下生长(即向低地址方向生长),称为递减堆栈。

堆栈指针指向最后压入堆栈的有效数据项,称为满堆栈;堆栈指针指向下一个数据项放入的空位置,称为空堆栈。

试判断CM3属于递减堆栈堆栈和满堆栈堆栈。

17.在CM3中记录程序状态的寄存器是___xPSR____。

都分别有些什么状态_应用状态、中断状态、可执状态。

18.PRIMASK寄存器的作用是___中断屏蔽寄存器____。

19.寄存器CONTROL的作用是控制处理器工作级别及堆栈切换。

20.CM3支持的4GB存储空间被划分成:

CODE、片上RAM、片上外设、片外RAM、片外外设、内核私有6个区域。

21.CM3中有一个位绑定区分别位于片上RAM和片上外设区,其大小为1M字节,由32M字节空间的位绑定别名区来访问。

22.CM3支持16种系统异常,和240种外设中断。

23.SysTick是一个___24_____位的系统定时器。

通常的功能是_作为操作系统时钟__。

第3章STM32基础及最小系统设计

24.STM32F103RBT7芯片的在片Flash存储器有128KB字节,在片SRAM存储器有20KB字节。

25.STM32F103RBT7芯片工作时电源电压是3.3V。

26.STM32最小系统电路包含:

MCU芯片、电源电路、时钟电路、复位电路和启动设置电路。

27.连接在APB1上的设备有:

电源接口、备分接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、WatchDog、Timer2、Timer3和Timer4。

28.连接在APB2上的设备有:

UART1、SPI1、Timer1、ADC1、ADC2、I/O(PA~PE,第二功能I/O)。

29.假定STM32F103单片机外部振荡器是8MHz。

执行下列程序。

voidBSP_Init(void)

{

RCC_HSEConfig(RCC_HSE_ON);

HSEStartUpStatus=RCC_WaitForHSEStartUp();

if(HSEStartUpStatus==SUCCESS)

{

RCC_PCLK2Config(RCC_HCLK_Div1);//PCLK2=HCLK=72MHz

RCC_PCLK1Config(RCC_HCLK_Div2);//PCLK1=HCLK/2=38MHz

RCC_HCLKConfig(RCC_SYSCLK_Div1);//HCLK=SYSCLK=72MHz

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLLCLK=8*9=72MHz

RCC_PLLCmd(ENABLE);//EnablePLL

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//等待PLL就绪

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置PLL作为时钟源

while(RCC_GetSYSCLKSource()!

=0x08);//等PLL时钟源启动就绪

}

}

请问,上述程序执行后,HCLK=72MHz,PCLK1=38MHz,PCLK2=72MHz,

30.利用Cortex-M3内核的24位定时器(SysTick),定时10ms,请计算初值并写出初始化程序,SysTick配置函数:

uint32_tSysTick_Config(uint32_tticks)。

假设HCLK的时钟是72MHz。

答:

初值=720000-1。

共中N是计数的次数,由于SysTick是减计数器,因此初值为720000-1。

voidSysTickInit(void)

{

SysTick_Config(720000-1);

}

第5章通用I/O结构及应用

31.STM32F103微控制器的I/O端口有PA~PG,每组多达16端口。

32.STM32F103微控制器的I/O端口的功能:

通用输入/输出、中断功能、复用功能和重映射功能。

33.请编程实现如图所示4只发光二极管流水。

/********************************************************/

/*说明:

PC8-PC15连接LED

********************************************************/

#include"stm32f10x.h"

#include"system_stm32f10x.h"

#include"stm32f10x_gpio.h"

#include"stm32f10x_rcc.h"

voidDelayMs(intn);

/********************************************************/

intmain(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9

|GPIO_Pin_10|GPIO_Pin_11;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOC,&GPIO_InitStructure);

GPIO_Write(GPIOC,0xFFFF);

/********************************************************/

while

(1)

{

GPIO_ResetBits(GPIOC,GPIO_Pin_8);

DelayMs(500);

GPIO_SetBits(GPIOC,GPIO_Pin_8);

GPIO_ResetBits(GPIOC,GPIO_Pin_9);

DelayMs(500);

GPIO_SetBits(GPIOC,GPIO_Pin_9);

GPIO_ResetBits(GPIOC,GPIO_Pin_10);

DelayMs(500);

GPIO_SetBits(GPIOC,GPIO_Pin_10);

GPIO_ResetBits(GPIOC,GPIO_Pin_11);

DelayMs(500);

GPIO_SetBits(GPIOC,GPIO_Pin_11);

}

}

 

voidDelayMs(intn)

{

unsignedinti,j;

for(i=0;i

for(j=0;j<8000;++j);

}

34.请编程实现键控蜂鸣器,当按键KEY1按下时,蜂鸣器发声,再按下不发声,按键采用中断方式控制。

*******************************************************/

/*说明:

KEY1->PA0;Buz->PB4

按键采用中断,在中断服务程中取反PB4

********************************************************/

#include"stm32f10x.h"

#include"system_stm32f10x.h"

#include"stm32f10x_gpio.h"

#include"stm32f10x_rcc.h"

#include"stm32f10x_exti.h"

#include"misc.h"

/*************************中断第二级配置*****************/

voidNVIC_Configuration(void)

{

NVIC_InitTypeDefNVIC_InitStructure;

NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

/***********************中断第三级配置******************/

voidEXTI_Configuration(void)

{

EXTI_InitTypeDefEXTI_InitStructure;

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);

EXTI_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);

}

/**********************按键初始化************************/

voidkey_init(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStructure);

}

/*********************蜂鸣器端口初始化******************/

voidBuzzer_Init(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE);//PB4重映射

//Buzzer

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_Init(GPIOB,&GPIO_InitStructure);

GPIO_ResetBits(GPIOB,GPIO_Pin_4);//置低电平,关闭蜂鸣器

}

intmain(void)

{

key_init();

Buzzer_Init();

__set_PRIMASK(0x00);//一级开关使能

NVIC_Configuration();//二级开关使能

EXTI_Configuration();//三级开关使能

/*************************************************/

while

(1){;}

}

/********************************************************/

voidEXTI0_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line0)!

=RESET)

{

GPIO_WriteBit(GPIOB,GPIO_Pin_4,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_4)));;

}

EXTI_ClearITPendingBit(EXTI_Line0);

}

第6章定时器结构及应用

35.STM32F103定时器是16位定时器。

36.STM32F103的基本定时器有:

TIM6、TIM7,通用定时器有:

TIM2~TIM5,高级定时器有:

TIM1、TIM8。

37.STM32F103定时器的主要功能有:

定时功能、输入捕获功能、输出比较功能(PWM)等。

38.已知系统时钟为72MHz,采用定时器TIM1产生周期为100ms的定时时间间隔并通过LED发光二极管指示定时过程,发光二极管与PC15相连。

分析:

TIM1的时钟为72MHz,定时100ms,需要计数7.2X106,已超出计数值范围,因此必须对输入时钟信号进行分频。

分频系数有多种选择,只要在计数范围内即可,只是计数值越大,分频率越高。

对输入时钟进行360分频,则计数值为2000,程序采用中断的方式,计时时间到LED状态反转。

/*****************************************************

说明:

已知系统时钟为72MHz,采用定时器TIM1产生周期为100ms

的定时时间间隔并通过LED发光二极管指示定时过程。

*****************************************************/

#include"stm32f10x.h"

#include"system_stm32f10x.h"

#include"stm32f10x_GPIO.h"

#include"stm32f10x_tim.h"

#include"stm32f10x_rcc.h"

#include"misc.h"

/*****************************************************

说明:

LED端口初始化PA15接LED.PD2控制锁存器

*****************************************************/

voidGPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOC,&GPIO_InitStructure);

GPIO_Write(GPIOC,0xFFFF);

/*************下面为74HC573锁存控制****************/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;

GPIO_Init(GPIOD,&GPIO_InitStructure);

//NLE置高,打开锁存器74HC573

GPIO_SetBits(GPIOD,GPIO_Pin_2);

}

voidTIM1_Configuration(void)

{

/*---------------------------------------------------------------

TIM1Configuration:

OutputCompareTimingMode:

TIM1CLK=72MHz,Prescaler=360,period=2000

---------------------------------------------------------------*/

TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);

TIM_TimeBaseStructure.TIM_Period=2000;//初值

TIM_TimeBaseStructure.TIM_Prescaler=360-1;//时钟预分频值

TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=

TIM_CounterMode_Down;//计数方式

TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);

TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);//使能中断(三级)

TIM_Cmd(TIM1,ENABLE);

}

voidNVIC_Configuration()//使能第二级中断开关

{

NVIC_InitTypeDefNVIC_InitStructure;

NVIC_InitStructure.NVIC_IRQChannel=TIM1_UP_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

intmain()

{

GPIO_Configuration();

NVIC_Configuration();

TIM1_Configuration();

while

(1)

;

}

第7章USART结构及应用

39.常见的短距离异步串行通信协议标准有:

RS232标准、RS485标准。

40.在异步串行通信中RS232标准的硬件连线主要有:

RX(数据接收线)、TX(数据发送)、GND(地线)组成。

41.STM32F103中的USART模块支持:

同步串行数据收和异步串行数据收发。

42.STM32F103中的USART模块支持:

全双工异步通信、同步单向通信和半双工单线通信。

43.STM32F103的USART模块程序初始化中主要涉及:

波特率、数据位、校验、停止位等设置。

44.STM32F103的USART模块的波特率最高可达:

4.5Mbit/s。

45.请利用STM32F103的USART模块实现与计算机之间通信,STM32F103发送:

"Pleaseinputdata!

:

"到计算机,计算机利用串口调试软件接收数据,然后计算机发送数据到STM32F103,并通过开发析上的LCD显示出接收的数据。

分析:

如图所示,采用串口2(USART2),用到PA2、PA3两个管脚,STM32F103的USART配置成波特率:

9600bit/s,数据位8位,停止位1位,校验位无。

数据接收采用中断方式进行。

/****************************************************

说明:

本程序是功能是STM32通过串口发:

"Pleaseinputdata!

:

"

对方通过串口发送数据,本STM32采用中断接收数据,保存在

RxBuffer[]

****************************************************/

#include"stm32f10x.h"

#include"system_stm32f10x.h"

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2