标题: STM32学习之使用TIM做定时器 [打印本页]

作者: xiaos    时间: 2015-4-10 17:31
标题: STM32学习之使用TIM做定时器
老样子先设置GPIO
  1. void GPIO_Configuration()

  2. {

  3.        GPIO_InitTypeDef      GPIO_InitStructure;

  4.       

  5.        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

  6.       

  7.        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

  8.        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

  9.        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

  10.       

  11.        GPIO_Init(GPIOB,&GPIO_InitStructure);

  12. }

  13. 接着设置NVIC

  14. void NVIC_Configuration()

  15. {

  16.        NVIC_InitTypeDef       NVIC_InitStructure;



  17.        NVIC_PritorityGroupConfig(NVIC_PritorityGroup_4)

  18.       

  19.        NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;

  20.        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

  21.        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;

  22.        NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;

  23.       

  24.        NVIC_Init(&NVIC_InitStructure);

  25. }



  26. 最后设置TIM

  27. voidTIM_Configuration()

  28. {

  29.        TIM_TimeBaseInitTypeDef      TIM_TimeBaseStructure;



  30.        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2.ENABLE);



  31.        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;//外接的时钟源设置 这里不使用

  32.        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//选择向上计数

  33.        TIM_TimeBaseStructure.TIM_Period=1000;//重装载值

  34.        TIM_TimeBaseStructure.TIM_Prescaler=71;//分频值为71+1

  35.       

  36.        TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);

  37.       

  38.        TIM_ClearFlag(TIM2,TIM_FLAG_Update);//清楚中断标准位

  39.       

  40.   TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//开启中断

  41.             

  42.   TIM_Cmd(TIM2,ENABLE);         //使能TIM2

  43. }
复制代码








欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1