ARM原理及应用复习题附答案.docx

上传人:b****1 文档编号:654650 上传时间:2023-04-29 格式:DOCX 页数:11 大小:21.76KB
下载 相关 举报
ARM原理及应用复习题附答案.docx_第1页
第1页 / 共11页
ARM原理及应用复习题附答案.docx_第2页
第2页 / 共11页
ARM原理及应用复习题附答案.docx_第3页
第3页 / 共11页
ARM原理及应用复习题附答案.docx_第4页
第4页 / 共11页
ARM原理及应用复习题附答案.docx_第5页
第5页 / 共11页
ARM原理及应用复习题附答案.docx_第6页
第6页 / 共11页
ARM原理及应用复习题附答案.docx_第7页
第7页 / 共11页
ARM原理及应用复习题附答案.docx_第8页
第8页 / 共11页
ARM原理及应用复习题附答案.docx_第9页
第9页 / 共11页
ARM原理及应用复习题附答案.docx_第10页
第10页 / 共11页
ARM原理及应用复习题附答案.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ARM原理及应用复习题附答案.docx

《ARM原理及应用复习题附答案.docx》由会员分享,可在线阅读,更多相关《ARM原理及应用复习题附答案.docx(11页珍藏版)》请在冰点文库上搜索。

ARM原理及应用复习题附答案.docx

ARM原理及应用复习题附答案

《ARM原理及应用》复习题

填空题

1.STM32F103是_32_位单片机,内核是ARM公司的___Cortex-M3___。

2.STM32F103最高工作频率___72MHz___。

片内具有多种外设,它们分别是:

_GPIO_、_USART_、_I2C_、_SPI_、_ADC_、_DAC_、_TIM_、_RTC_、_IWDG_、_WWDG_。

IWDG:

独立看门狗

WWDG:

窗口看门狗

3.STM32103的GPIO端口具有多种配置状态,输入有3种状态,它们分别是_模拟输入_、_浮空输入__和上拉/下拉输入;输出有4种状态,它们分别是_通用推挽输出_、_通用开漏输出_、_复用推挽输出_和_复用开漏输出_。

5.当STM32I/O端口配置为输入时,输出功能被_禁止_,施密特触发器被激活__。

6.STM32的所有端口都有外部中断能力。

当使用外部中断线时,相应的引脚必须配置成输入模式。

7.STM32具有单独的位设置或位清除能力。

这是通过GPIOx->BSRR_和GPIOx->BRR寄存器来实现的。

8.STM32芯片内部集成的12位位ADC是一种逐次逼近(比较)型模拟数字转换器,具有18个通道,可测量16个外部和2个内部信号源。

9.STM32的NVIC管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现时延的中断处理,并有效地处理后到中断。

10.系统计时器(SysTick)提供了1个24位二进制递减计数器,具有灵活的控制机制

11.STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为向上计数模式、向下计数模式和向上下计数模式。

12.STM32系列ARMCortex-M3芯片支持三种复位形式,分别为上电复位、按键复位和备份复位。

简答题

1.什么是嵌入式系统?

嵌入式系统一般由哪几部分构成?

它与通用计算机有何区别?

答:

是一种嵌入受控器件内部,为特定应用而设计的专用计算机系统,具有“嵌入性”、“专用性”和“计算机系统”3个基本要素。

//它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成。

//嵌入式系统通常执行的是带有特定要求的预先定义的任务,强调控制能力与控制的可靠性;而通用计算机则可以通过安装各种软件执行各种不同的任务,强调高速、海量的数值计算。

2.ARMCortex-M3有何特点?

答:

采用哈佛结构的32位处理器内核,具有高性能、实时功能、数字信号处理、低功耗与低电压操作特性,同时还保持了集成度高和易于开发的特点。

3.简述Cortex-M3系统滴答定时器的功能和作用。

答:

功能:

给操作系统提供一个硬件上的中断作为整个系统的时基

作用:

1.产生操作系统的时钟节拍;2.便于不同处理器之间程序移植;3.当作计时器测量时间。

4.STM32共有那几种基本时钟信号?

答:

5种

HSI:

高速内部时钟信号;HSE:

高速外部时钟信号;

LSI:

低速内部时钟信号;LSE:

低速外部时钟信号;PLL:

锁相环倍频输出。

5.简述嵌套向量中断控制器(NVIC)的主要特性。

答:

支持嵌套和向量中断

43个可屏蔽中断通道;

16个可编程的优先等级;

低延迟的异常和中断处理;

电源管理控制;

系统控制寄存器的实现;

6.简述STM32上机调试操作步骤。

答:

(1)启动STM32开发平台程序;

(2)编写程序源代码,编译代码;

(3)用仿真器连接硬件烧录程序,进行debug,观察硬件是否按照预期工作;

(4)如非正常工作,检查程序代码是否存在错误,再检查硬件系统是否有损坏,直至系统工作正常。

7.简述STM32中USART功能特点。

答:

STM32的USART为通用同步异步收发器,支持同步单线通信和半双工单线通信,可利用分数波特率发生器提供宽范围的波特率选择。

还支持LIN,智能卡协议和IrDA红外通信,以及调制解调器等操作,还具有DMA。

8.简述STM32中SPI功能特点。

答:

SPI即串行设备接口,STM32的SPI可以实现主设备或从设备协议,当配置为主设备时,SPI可以连接多达16个独立从设备,收发数据寄存器的宽度可配置为8位或16位。

通过SPI可以实现读写SD卡,控制触摸屏等功能。

9.简述STM32中TIM功能特点。

答:

STM32提供了高级控制定时器TIM1/8,通用定时器TIM2~5,基本定时器TIM6/7。

这几个定时器都是由可编程预分频器驱动的16位自动装载计数器构成。

它们都可以做一些基本的定时,还可以做PWM输出或者输入捕获。

除此之外,高级控制定时器具有刹车输入,互补输出和重复次数计数器功能,基本定时器具有触发DAC同步电路的功能。

10.简述STM32中ADC功能特点。

答:

STM32ADC是12位逐次比较型ADC,有18个通道,可测量16个外部、2个内部信号源。

各通道的A/D转换可以单次、连续、扫描或间断模式执行。

ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。

模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。

12.Cortex-M3的处理器有那两种工作模式和状态?

如何进行工作模式和状态的切换?

答:

工作模式:

1.线程模式;2.处理模式

处理器复位或异常退出时为线程模式,出现异常时进入处理模式。

工作状态:

1.Thumb状态;2.调试状态

正常执行16位和32位的Thumb和Thumb-2指令时进入Thumb状态,调试时进入调试状态。

13.简述STM32的不同复用功能的重映射功能。

答:

STM32有很多的内置外设,这些内置外设都是与I/O口共用引出引脚,通过相应的配置,很多复用功能的引脚可以通过重映射,从不同的I/O管脚引出。

既方便了用户进行PCB设计,还可以虚拟地增加复用功能的数量

14.简述STM32中I2C功能特点。

答:

I2C是两线式串行总线,用于实现主/从设备间的多主串行通信。

总线上的每个器件都有一个唯一的地址识别,而且都可以作为一个发送器或接收器。

它是一个真正的多主机总线,具有仲裁功能,总线上连接器件的数量只受总线最大电容的限制,有标准和快速两种模式。

15.STM32高级定时器有哪些功能?

高级定时器TIM1适合多种用途,包含测量输入信号的脉冲宽度,或者产生输出波形。

使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。

16.如何设置STM32的串口的波特率。

答:

USARTx->BRR=

17.Cortex-M3的存储空间可以分为哪几个部分,每一部分的地址范围是怎样的?

答:

内核设备:

0xE0000000-0xE00FFFFF(1MB)

片上设备:

0x40000000-0x5FFFFFFF(512MB)

SRAM:

0x20000000-0x3FFFFFFF(512MB)

Flash:

0x00000000-0x1FFFFFFF(512MB)

18.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复用推挽输出

三、编程题(完整程序)

1.编制一个循环点亮LED灯的程序。

有4个发光二极管,它们的公共极(阳极)接+5V,阴极通过限流电阻分别于PB12、PB13、PB14、PB15,每次控制其中某个LED灯点亮1S后,转到下一个LED灯亮,循环不止。

#include“stm32f10x_map.h”

charsec=0,sec1=0;

unsignedshortled_dat[4]={1<<12,1<<13,1<<14,1<<15};

charled_num=0;

intmain(void)

{

SysTick->LOAD=1E6;

SysTick->CTRL=1;

RCC->APB2ENR|=1<<3;

GPIOB->CRH&=0x0000ffff;

GPIOB->CRH|=0x33330000;

while

(1)

{

if(SysTick->CTRL&1<<16)

{

sec+=1;

if((sec&0xf)>9)

sec+=6;

}

if(sec!

=sec1)

{

sec1=sec;

GPIOB->BSRR=0xf000;//灭所有LED灯

GPIOB->BRR=led_dat[led_num];//亮指定LED灯

if(++led_num==4)led_num=0;

}

}

}

2.编制一个LED数码管测试程序。

数码管采用共阳极接+3.3V,阴极通过限流电阻分别于PA0、PA1、PA2、PA3、PA4、PA5、PA6和PA7,数码管的段与I/O口连接的对应关系是a->PA0,b->PA1,c->PA2,d->PA3,e->PAA4,f->PA5,g-PA6,dp->PA7,试编程在数码管实现数字0~9循环显示,每个数字显示1秒。

#include”stm32f10x_map.h”

charsec=0,sec1=0;

unsignedshortled_dat[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0xaf};

charled_num=0;

intmain(void)

{

SysTick->LOAD=1E6;

SysTick->CTRL=1;

RCC->APB2ENR|=1<<3;

GPIOA->CRL&=0x00000000;

GPIOA->CRL|=0x33333333;

}

if(SysTick->CTRL&1<<16)

{

Sec+=1;

if((sec&0xf)>9)

sec+=6;

}

if(sec!

=sec1)

{

sec1=sec;

GPIOA->BSRR=0x00ff;//灭数码管所有LED

GPIOA->BRR=led_dat[led_num];//亮数码管指定LED(0~9)

if(++led_num==10)led_num=0;

}

}

}

3.编制一个使用STM32的USART1与PC机实现串行通讯,串行口使用1位起始位、8位数据位、无校验位和1停止位,波特率位9600bps。

编程实现接收PC机发送的数据后回传给PC机

#include”stm32f10x_map.h”

chardata;

voidmain(void)

{

RCC->APB2ENR|=1<<2;

RCC->APB2ENR|=1<<14;

GPIOA->CRH&=0xfffff00f;

GPIOA->CRH|=0x000004b0;

USART1->BRR=0x0341;//波特率设置8000000/9600

USART1->CR1|=1<<2;

USART1->CR1|=1<<3;

USART1->CR1|=1<<13;

while

(1)

{

if(USART1->SR&1<<5)

{

data=USART1->DR;

returndata;

USART1->DR=data;

while(!

(USART1->SR&1<<7));

returnUSART1->DR;

}

}

}

4.编制一个使用STM32的USART2与PC机实现串行通讯,串行口使用1位起始位、8位数据位、无校验位和1停止位,波特率位19200。

编程实现接收PC机发送的数据(大写字母)后转换为小写字母回传给PC机。

#include”stm32f10x_map.h”

chardata;

voidmain(void)

{

RCC->APB2ENR|=1<<2;

RCC->APB2ENR|=1<<14;

GPIOA->CRH&=0xfffff00f;

GPIOA->CRH|=0x000004b0;

USART1->BRR=0x0341;//波特率设置8000000/9600

USART1->CR1|=1<<2;

USART1->CR1|=1<<3;

USART1->CR1|=1<<13;

while

(1)

{

if(USART1->SR&1<<5)

{

data=USART1->DR;

returndata;

USART1->DR=data+0x20;

while(!

(USART1->SR&1<<7));

returnUSART1->DR;

}

}

}

5.编制一个使用STM32定时器的TIM1的PWM功能,实现产生周期为5ms,占空比位70%的PWM矩形波。

(系统晶振为8MHz)

#include”stm32f10x_map.h”

voidmain(void)

{

RCC->APB2ENR|=1<<2;

RCC->APB2ENR|=1<<11;

GPIOA->CRH&=0xfffffff0;

GPIOA->CRH|=0x0000000b;

TIM1->PSC=4000;

TIM1->ARR=10;//周期=ARR*0.5ms

TIM1->CCMR1|=0x60;

TIM1->CCER|=1;

TIM1->CCR1=7;//占空比=CCR1/ARR=70%

TIM1->BDTR=1<<15;

TIM1->CR1=1;

}

 

WelcomeTo

Download!

!

!

 

欢迎您的下载,资料仅供参考!

 

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

当前位置:首页 > 总结汇报 > 学习总结

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

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