实验五 IM定时器实验.docVIP

  • 12
  • 0
  • 约3.9万字
  • 约 7页
  • 2016-12-15 发布于河南
  • 举报
实验五 TIM定时器实验 一、实验目的 了解TIM定时器的原理与应用 二、实验内容 1.对TIM3定时器进行控制,使得PB5-TIM3通道2产生频率为12.5Hz的方波,该方波控制LED1的闪烁。(特定频率产生) 2.对周期进行设置,控制通用定时器3的2通道,实现1KHz的不同占空比波形,用于控制LED1亮度的明暗渐变。(PWM脉冲宽度调制) 三、实验仪器、设备 计算机、开发板、keil软件 四、软件程序设计 1、频率产生控制LED闪烁实验 根据任务要求,程序内容主要包括: ①配置TIM3的通道2为输出比较模式(预分频系数设置为63),TIM3_CCR2=45000。 ②在相应的TIM3定时器中断服务处理程序中根据定时器的值翻转输出电平。以输出方波。 整个工程包含4类源文件: FWLIB--stm32f10x_gpio.c ST公司的标准库,包含了关于对通用IO口设置的函数。 stm32f10x_rcc.c ST公司的标准库,包含了关于对系统时钟设置的函数。 stm32f10x_USART.c ST公司的标准库,包含了关于对USART设置的函数。 stm32f10x_flash.c ST公司的标准库,包含了关于对flash设置的函数。 Misc.c ST公司的标准库,包含了关于中断设置的函数。 CM3—是关于CORETEX-M3平台的系统函数及定义 App—main.c 例程的主函数。 App—tim.c 定时器3的设置。 App--stm32f10x_it.c 中断服务程序 主函数如下: //__________________________________________________________ int main(void) { /* System Clocks Configuration --72M*/ RCC_Configuration(); /* NVIC configuration */ /*嵌套向量中断控制器 说明了定时器3抢占优先级级别0(最多1位) ,和子优先级级别0(最多7位) */ NVIC_Configuration(); /*定时器3的初始化*/ time_ini(); while(1); } void time_ini(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB , ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); /* GPIOA Configuration: Channel 1 Output */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PB5复用为TIM3的通道2 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, GPIO_InitStructure); GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3 , ENABLE);//TIM3局部复用功能开启 在TIM3的局部复用开启时,PB5会被复用为TIM3_CH2 /* Time Base configuration */ /*------------------------------------------------------------------- TIM3CLK=72MHz 预分频系数Prescaler=63 经过分频 定时器时钟为1.125MHz 捕获/比较寄存器2 TIM3_CCR2= CCR2_Val 2通道产生的更新频率是=1.125MHz/CCR2_Val=25Hz -------------------------------------------------------------------*/ TIM3_TimeBaseStructure.TIM_Prescaler = 63; //预分频器TIM3_PSC=63 TIM3_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //计数器向上计数模式 TIM3_

文档评论(0)

1亿VIP精品文档

相关文档