STM32期末考试答案详解_第1页
STM32期末考试答案详解_第2页
STM32期末考试答案详解_第3页
STM32期末考试答案详解_第4页
STM32期末考试答案详解_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简述嵌套向量中断控制器(NVIC)的主要特性。答:STM32的嵌套向量中断控制器(NVIC)管理着包括Cortex-M3核异常等中 断,其和ARM处理器核的接口紧密相连,可以实现低延迟的中断处理,并有效 地处理晚到的中断。STM32嵌套向量中断控制器(NVIC)的主要特性如下:q具有 43个可屏蔽中断通道(不包含16个Cortex-M3的中断线)。q具有16个可 编程的优先等级。q可实现低延迟的异常和中断处理。q具有电源管理控 制。q系统控制寄存器的实现。1. 简述STM32的ADC系统的功能特性。答:STM32的ADC系统的主要功能特性包括如下几个方面:ADC开关控 制、ADC时钟、ADC通

2、道选择、ADC的转换模式、中断、模拟看门狗、ADC的 扫描模式、ADC的注入通道管理、间断模式、ADC的校准模式、ADC的数据对 齐、可编程的通道采样时间、外部触发转换、DMA请求、双ADC模式和温度传 感器。2. 简述STM32的双ADC工作模式。答:在有两个ADC的STM32器件中,可以使用双ADC模式。在双ADC模 式里,根据ADC.CR 1寄存器中DUALMOD2:0位所选的模式,转换的启动可以 是ADC1主和ADC2从的交替触发或同时触发。双ADC工作模式主要包括如下几 种:同时注入模式、同时规则模式、快速交替模式、慢速交替模式、交替触发 模式和独立模式。1.简述STM32的USAR

3、T的功能特点。、答:STM32的USART为通用同步异步收发器,其可以与使用工业标准NRZ 异步串行数据格式的外部设备之间进行全双工数据交换。USART还可以利用分 数波特率发生器提供宽范围的波特率选择。STM32的USART支持同步单向通信和半双工单线通信。同时,其也支持 LIN(局部互连网),智能卡协议和IrDA(红外数据)SIR ENDEC规范,以及调制解调 器(CTS/RTS)操作。STM32还具备多处理器通信能力。另外,通过多缓冲器配置 的DMA方式,还可以实现高速数据通信。1. 简述STM32的高级控制定时器TIM1的结构。答:STM32提供了一个高级控制定时器(TIMl)o TI

4、M1由一个16位的自动装 载计数器组成,它由一个可编程预分频器驱动。TIM1适合多种用途,包含测量 输入信号的脉冲宽度,或者产生输出波形。使用定时器预分频器和RCC时钟控 制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。高级控制定时器TIM1和通用控制定时器TIMx是完全独立的,它们不共享 任何资源,因此可以同步操作。2. 简述STM32时钟的类型。答:STM32提供了三种不同的时钟源,其都可被用来驱动系统时钟 SYSCLK,这三种时钟源分别为:qHSI振荡器时 q HSE振荡器时钟 q PLL时钟这三种时钟源还可以有以下2种二级时钟源:q 32kHz低速内部RC,可以用于驱

5、动独立看门狗和RTC。其中,RTC用于从 停机/待机模式下自动唤醒系统。q低速外部晶振也可用来驱动RTC(RTCCLK)o任一个时钟源都可被独立地启动或关闭,这样可以通过关闭不使用的时钟 源来优化整个系统的功耗。1.简述DMA控制器的基本功能。答:STM32的DMA控制器有7个通道,每个通道专门用来管理来自于一 个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优 先权。DMA控制器和Cortex-M3核共享系统数据线执行直接存储器数据传输。 因此,1个DMA请求占用至少2个周期的CPU访问系统总线时间。为了保证 Cortex-M3核的代码执行的最小带宽,DMA控制器总是在2

6、个连续的DMA请 求间释放系统时钟至少1个周期。NVIC和外部中断酒己置中断0 (LED绿灯闪1次),中断1 (LED蓝灯闪2 次),中断2三个中断(LED绿灯闪3次),执行顺序为0->1->212O (默认中断0闪烁的是绿灯)按下按键,绿灯闪(一亮一灭)1次,蓝灯闪 2次,然后绿灯闪3次,中断结束。include""include""include""include""include""/* Private function prototypes*/voidRCC_Configur

7、ation(void);void lnit_GPIOs (void);void Delay(uint32_t nTime);void USART_Configuration(void);void EXTI_Configurati on (void);void NVIC_Configuration(void);static volatile uint32_t TimingDelay;int main (void)/* Con figure Clocks for Applicati on need */RCC_Configuration();SysTick_Config(/ 2000);NVIC_

8、Configuration();/* Init I/O ports */lnit_GPIOs();USART_Configuration();EXTI_Configuration();#else#endif结构的作用是根据预编译条件决定中断向量表起始地址*/#ifdef VECT_TAB_RAM/*中断向量表起始地址从Ox开始*/NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);#else/* VECT_TAB_FLASH */*中断向量表起始地址从Ox开始*/NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);#end

9、if/*选择NVIC优先级分组2 7NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);/*使能EXITO通道,2级先占优先级,0级次占优先级*/= TIM2RQn;=0;=0;=ENABLE;NVIC_lnit(&NVIC_lnitStructure);include""include m,extern uintl6_t CCRl_Val;/*声明输出比较通道1计数周期变量*/extern uintl6 t CCR2 Vai;extern uintl6 t CCR3 Vai;extern uintl6 t CCR4 Vai

10、;void NMI_Handler(void)void HardFault_Handler(void) /* Go to infinite loop when Hard Fault exception occurs */while (1) void MemManage_Handler(void) /* Go to infinite loop when Memory Man age excepti on occurs */ while (1) void BusFault_Handler(void) /* Go to infinite loop when Bus Fault exception o

11、ccurs */while (1)void UsageFault_Handler(void) /* Go to infinite loop when Usage Fault exception occurs */while (1) void SVC_Handler(void)void DebugMon_Handler(void)void PendSV_Handler(void)void SysTick_Handler(void) / TimingDelay_Decrement();void DMAl_Channell_IRQHandler (void)void RTC_WKUPJRQHandl

12、er(void)void TIM2_IRQHandler(void)uintl6_t capture=0;/*当前捕获计数值局部变量*/*TIM 时钟=32M,分频数=1599+1, TIM2 counter clock=10khz CCl 更新率 =TIM2counterclock/CCRX_Val*/if(TIM_GetlTStatus(TIM2,TIMT_CC1)!二 RESET)GPIO_WriteBit(GPIOB,GPIO_Pin_6,(BitAction)(l - GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_6);/*读出当前计数值*/captur

13、e=TIM_GetCapturel(TIM2);/*根据当前计数值更新输出捕获寄存器*/TIM_SetComparel(TIM2,capture+CCRl_Val);TIM_ClearlTPendingBit(TIM2,TIMT_CC1);else if(TIM_GetlTStatus(TIM2JIM_IT_CC2)!=RESET)GPIO_WriteBit(GPIOB,GPIO_Pin_7,(BitAction)(l -GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_7);capture=TIM_GetCapture2(TIM2);TIM_SetCompare2(

14、TIM2,capture+CCR2_Val);TIM_ClearlTPendingBit(TIM 乙 TIMT_CC2);/else if(TIM_GetlTStatus(TIM2JIM_IT_CC3)!=RESET)/GPIO_WriteBit(GPIOA,GPIO_Pin_6,(BitAction)GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_6); /capture=TIM_GetCapture3(TIM2); /TIM_SetCompare3(TIM2,capture+CCR3_Val); /TIM_ClearlTPendingBit(TIM2,TIMT_

15、CC3);/else if(TIM_GetlTStatus(TIM2JIM_IT_CC4)!=RESET)/GPIO_WriteBit(GPIOA,GPIO_Pin_7,(BitAction)(l GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_7);/capture=TI M_GetCa pture4(TIM2);/TIM_SetCompare4(TIM2,capture+CCR4_Val);/TIM_ClearlTPendingBit(TIM2,TIMT_CC4);/按键按一下,LED3和LED4灯亮,松开按键,再次按下按键,LED3和LED4 灯灭。*使用GP

16、IO和SysTick定时器实现按键扫描*/include""include""include""include""/* Private function prototypes */void RCC_Configuration(void);/* 系统时钟设置 */void lnit_GPIOs (void);/*GPIO 端口设置*/void Delay(uint32_t nTime);static volatile uint32_t TimingDelay; /*定义静态变量*/int main (void) /*

17、 Con figure Clocks for Applicati on n eed */RCC_Configuration();SysTick_Config(/ 2000);/*设置 SysTick 时钟/* Init I/O ports */lnit_GPIOs();while(l)/GPIO TOGGLEfLD GPIO PORT ID GREEN GPIO PIN );/Delay(lOOO);if(GPIO_ReadlnputDataBit(USERBUTTON_GPIO_PORT, USERBUTTON_GPIO_PIN)=0x01)Delay(2000);/*延时 1 秒,即按 1

18、 秒以上才翻转 */if(GPIO_ReadlnputDataBit(USERBUTTON_GPIO_PORT/ USERBUTTON_GPIO_PIN)=Ox01)GPIO_TOGGLE(LD_GPIO_PORT,LD_GREEN_GPIO_P IN );/*翻转输出电平*/GPIO_TOGGLE(LD_GPIO_PORT/LD_BLUE_GPIO_PIN );while(GPIO_ReadlnputDataBit(USERBUTTON_GPIO_PORT,USERBUTTON_GPIO_PIN)=Ox01);void RCC_Configuration (void)RCC_Delnit()

19、;RCC_HSICmd(ENABLE);/*使能 HSI 时钟*/广等待HSI稳定*/while (RCC_GetFlagStatus(RCC_FLAG_HSIRDY) = RESET)RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);/*选择 HIS 为系统时钟源RCC_MSIRangeConfig(RCC_MSIRange_6);10/12RCC_HSEConfig(RCC_HSE_OFF);/*关闭 HSE 时钟*/ if(RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET )/*等待关闭稳定*/ while(l);/* E

20、nable comparator clock LCD and PWR mngt */RCC_APBlPeriphClockCmd(RCC_APBlPeriph_LCD | RCC_APBlPeriph_PWR,ENABLE);使能APB1外设时钟*/* Enable ADC clock & SYSCFG */RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADCl |RCC_APB2Periph_SYSCFG, ENABLE);/*使能APB2外设时钟*/void lnit_GPIOs (void) GPIOnitTypeDef GPIOnitStructure;/*使能AHB时钟*/RCC_AHBPeriphClockCmd(LD_GPIO_PORT_CLK|USERBUTTON_GPIO_CLK/ENABLE);/*选择输入管脚*/=USERBUTTON GPIO PIN;=GPIO_ModeJN;/ 浮空

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论