ARM原理及应用复习题(附答案).docx
ARM原理及应用复习题填空题1. STM32F103是32位单片机,内核是ARM公司的COrteX-M3。2. STM32F103最高工作频率72MHZ0片内具有多种外设,它们分别是:GPlO、USART、I2C、SPl、ADC、DAC、TIM.RTC、IWDG、WWDGoIWDG:独立看门狗WWDG:窗口看门狗3.STM32103的GPIo端口具有多种配置状态,输入有3种状态,它们分别是模拟输入、浮空输入和上拉/下拉输入;输出有4种状态,它们分别是通用推挽输出、通用开漏输出、.复用推挽输出和复用开漏输出。5. 当STM321/0端口配置为输入时,输出功能被禁止,施密特触发器被激活。6. STM32的全部端口都有外部中断实力。当运用外部中断线时,相应的引脚必需配置成输入模式。7. STM32具有单独的位设置或位清除实力。这是通过GPlC)X>BSRR和GPloX>BRR寄存器来实现的。8. STM32芯片内部集成的12位位ADC是一种逐次靠近(比较)型模拟数字转换器,具有18个通道,可测量_16个外部和2个内部信号源°9. STM32的NVIC管理着包括CorteX-M3核异样等中断,其和ARM处理器核的接口紧密相连,可以实现时延的中断处理,并有效地处理后到中断°10.系统计时器(SySTiCk)供应了1个24位二进制递减计数器,具有灵敏的限制机制H.STM32通用定时器TlM的16位计数器可以接受三种方式工作,分别为向上计数模式、向下计数模式和向上下计数模式O12.STM32系列ARMCorte-M3芯片支持三种复位形式,分别为上电复位、按键复位和备份复位。简答题1 .什么是嵌入式系统?嵌入式系统一般由哪几部分构成?它与通用计算机有何区分?答:是一种嵌入受控器件内部,为特定应用而设计的专用计算机系统,具有“嵌入性”、“专用性”和“计算机系统”3个基本要素。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成。嵌入式系统通常执行的是带有特定要求的预先定义的任务,强调限制实力与限制的牢靠性;而通用计算机则可以通过安装各种软件执行各种不同的任务,强调高速、海量的数值计算。2 .ARMCorte-M3有何特点?答:接受哈佛结构的32位处理器内核,具有高性能、实时功能、数字信号处理、低功耗与低电压操作特性,同时还保持了集成度高和易于开发的特点。3 .简述Corte-M3系统滴答定时器的功能和作用。答:功能:给操作系统供应一个硬件上的中断作为整个系统的时基作用:L产生操作系统的时钟节拍;2.便于不同处理器之间程序移植;3.当作计时器测量时间。4 .STM32共有那几种基本时钟信号?答:5种HSI:高速内部时钟信号;HSE:高速外部时钟信号;1.SI:低速内部时钟信号;LSE:低速外部时钟信号;PLL:锁相环倍频输出。5 .简述嵌套向量中断限制器(NVlC)的主要特性。答:支持嵌套和向量中断43个可屏蔽中断通道;16个可编程的优先等级;低延迟的异样和中断处理;电源管理限制;系统限制寄存器的实现;6 .简述STM32上机调试操作步骤。答:(1)启动STM32开发平台程序;(2)编写程序源代码,编译代码;(3)用仿真器连接硬件烧录程序,进行debug,视察硬件是否依据预期工作;(4)如非正常工作,检查程序代码是否存在错误,再检查硬件系统是否有损坏,直至系统工作正常。7 .简述STM32中USART功能特点。答:STM32的IJSART为通用同步异步收发器,支持同步单线通信和半双工单线通信,可利用分数波特率发生器供应宽范围的波特率选择。还支持LIN,智能卡协议和IrDA红外通信,以及调制解调器等操作,还具有DMA。8 .简述STM32中SPI功能特点。答:SPl即串行设备接口,STM32的SPl可以实现主设备或从设备协议,当配置为主设备时,SPl可以连接多达16个独立从设备,收发数据寄存器的宽度可配置为8位或16位。通过SPI可以实现读写SD卡,限制触摸屏等功能。9 .简述STM32中TlM功能特点。答:STM32供应了高级限制定时器TlMl/8,通用定时器TIM2、5,基本定时器TIM6/7。这几个定时器都是由可编程预分频器驱动的16位自动装载计数器构成。它们都可以做一些基本的定时,还可以做PWM输出或者输入捕获。除此之外,高级限制定时器具有刹车输入,互补输出和重复次数计数器功能,基本定时器具有触发DAC同步电路的功能。10 .简述STM32中ADC功能特点。答:STM32ADC是12位逐次比较型ADC,有18个通道,可测量16个外部、2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。12. Corte-M3的处理器有那两种工作模式和状态?如何进行工作模式和状态的切换?答:工作模式:1.线程模式;2.处理模式处理器左位最异样退出时为线程模式,出现异样时进入处理模式。工作状态:1.ThUmb状态;2.调试状态正常执行16位和32位的ThUinb和ThUinb-2指令时进入ThUmb状态,调试时进入调试状态。13. 简述STM32的不同复用功能的重映射功能。答:STM32有很多的内置外设,这些内置外设都是与I/O共用引出引脚,通过相应的配置,很多复用功能的引脚可以通过重映射,从不同的I/O管脚引出。既便利了用户进行PCB设计,还可以虚拟地增加复用功能的数量14. 简述STM32中I2C功能特点。答:I2C是两线式串行总线,用于实现主/从设备间的多主串行通信。总线上的每个器件都有一个唯一的地址识别,而且都可以作为一个发送器或接收器。它是一个真正的多主机总线,具有仲裁功能,总线上连接器件的数量只受总线最大电容的限制,有标准和快速两种模式。15. STM32高级定时器有哪些功能?高级定时器TIMl适合多种用途,包含测量输入信号的脉冲宽度,或者产生输出波形。运用定时器预分频器和RCC时钟限制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调整。16. 如何设置STM32的串口的波特率。答:USARTx->BRR=。CL/波特率每一部分的地址范围是怎样的?17. Corte-M3的存储空间可以分为哪几个部分,答:内核设备:OxEOOO 片上设备:0x4000 SRAM : 0x2000 Flash : 0x00000000-0xE00F0000-0x5FFF0000-0x3FFF0000-0xlFFFFFFFFFFFFFFFFFFF(IMB)(512MB)(512MB)(512MB)18. STM32的GPIO的配置模式有那几种?如何进行配置模式的配置?答:8种1. GPI0_Mode_AIN模拟输入2. GPI0_Mode_IN_FL0ATING浮空输入3. GPl(LModcPD下拉输入4. GPI(LModePU上拉输入5. GPI0_Mode_0ut_0D开漏输出6. GPI0_Mode_0ut_PP推挽输出7. GPI0_Mode_AF_0D复用开漏输出8. GPIO_Mode_AF_PP复用推挽输出三、编程题(完整程序)1.编制一个循环点亮LED灯的程序。有4个发光二极管,它们的公共极(阳极)接+5V,阴极通过限流电阻分别于PBl2、PBI3、PBl4、PB15,每次限制其中某个LED灯点亮IS后,转到下一个LED灯亮,循环不止。Sincludewstm32f10x_map.hncharsec-0,secl=0;unsignedshortled_dat4-l<<12,1<<13,1<<14,1<<15;charled_num-O;intmain(void)SysTick->L0AD=lE6;SysTick->CTRL=l;RCC->APB2ENR=1<<3;GPIOB->CRH&=OxOOOOffff;GPIOB->CRHI=0x33330000;while(1)(if(SysTick->CTRL&1<<16)sec+=l;if(sec&Oxf)>9)sec+=6;)if(sec!=secl)secl=sec;GPlOB->BSRR=OXfOO0;灭全部LED灯GPIOB->BRR=led_datled_num;亮指定LED灯if(+led_num=4)led_num=0;2 .编制一个LED数码管测试程序。数码管接受共阳极接+3.3V,阴极通过限流电阻分别于PAO.PAl、PA2、PA3、PA4、PA5、PA6和PA7,数码管的段与I/O口连接的对应关系是a->PA0,b->PAl,c->PA2,d->PA3,e->PAA4,f->PA5,g-PA6,dp->PA7,试编程在数码管实现数字09循环显示,每个数字显示1秒。Sincludevstm32f10x_map.hncharsec=O,secl=O;unsignedshortled_dat10=(0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,Oxaf;charled_num-0;intmain(void)(SysTick->L0D=lE6;SysTick->CTRL=l;RCC->APB2ENR=1<<3;GPIOA->CRL&=OxOOOO0000;GPIOA->CRLI=0x33333333;)if(SysTick->CTRL&1<<16)(Sec+=1;if(sec&Oxf)>9)sec÷=6;if(sec!=secl)(secl=sec;GPloA->BSRR=0x00ff;灭数码管全部LEDGPIOA->BRR=led_datled_nuIn;亮数码管指定LED(Cr9)if(+led_num=10)led_num=0;)3 .编制一个运用STM32的USARTl与PC机实现串行通讯,串行口运用1位起始位、8位数据位、无校验位和1停止位,波特率位9600bps。编程实现接收PC机发送的数据后回传给PC机#includewstm32f10x_map.hwchardata;voidmain(void)(RCC->PB2ENR=1<<2;RCC->APB2ENR=1<<14;GPIOA->CRH&=OXffffff;GPIOA->CRHI=OxOOOO04b0;USART1->BRR=0x0341;波特率设置8000000/9600USART1->CR1=1<<2;USART1->CR1=1<<3;USART1->CR1=1<<13;while(1)(if(USARTl->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机。SincludevStm32fl0x_map.h"chardata;voidmain(void)RCC->APB2ENR=1<<2;RCC->APB2ENR=1<<14;GPIOA->CRHG=Oxffffff;GPIOA->CRH1=0x000004b0;USART1->BRR=0x0341;波特率设置8000000/9600USART1->CR1=1<<2;USART1->CR1=1<<3;USART1->CR1=1<<13;while(l)(if(USARTl->SR&1«5)(data=USART1->DR;returndata;USART1->DR=data+0x20;while(!(USART1->SR&1«7);returnUSART1->DR;)5 .编制一个运用STM32定时器的TTMl的PW功能,实现产生周期为5ms,占空比位70%的PwM矩形波。(系统晶振为8MHz)#include”Stin32f10x_map.h"voidmain(void)(RCC->APB2ENR=1<<2;RCC->APB2ENR=1<<11;GPIOA->CRH&=Oxfffffff;GPIOA->CRHI=0x0000000b;TIMl->PSC=4000;TlMl->ARR=10;周期二ARR*0.5msTIM1->CCMR1=0x60;TIM1->CCER=1;TIM1->CCR1=7;占空比二CCR1ARR=7O%TIM1->BDTR=1<<15;TIM1->CR1=1;)