标题: STM32定时器中断控制一个LED1s闪,另一个2s闪 [打印本页]

作者: 伊森亨特    时间: 2018-7-3 17:21
标题: STM32定时器中断控制一个LED1s闪,另一个2s闪
暂时没有想到好的办法,大家想到更好的方法可以跟帖留言
tim2的配置
  1. void TIM2_Config(u16 arr,u16 pre)
  2. {
  3.     TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
  4.     NVIC_InitTypeDef NVIC_InitStructure;
  5.      
  6.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  7.      
  8.     TIM_TimeBaseInitStructure.TIM_ClockDivision=0;
  9.     TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
  10.     TIM_TimeBaseInitStructure.TIM_Period=(arr-1);
  11.     TIM_TimeBaseInitStructure.TIM_Prescaler=(pre-1);
  12.     TIM_TimeBaseInitStructure.TIM_RepetitionCounter=0;
  13.      
  14.     TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);
  15.      
  16.     NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;
  17.     NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
  18.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
  19.     NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
  20.      
  21.     NVIC_Init(&NVIC_InitStructure);
  22.      
  23.     TIM_Cmd(TIM2, ENABLE);
  24.      
  25.     TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
  26. }
复制代码

tim2的中断服务函数
  1. void TIM2_IRQHandler(void)
  2. {
  3.     static u8 led=0,led2=0;
  4.     static u8 flag=0;
  5.     if(TIM_GetITStatus(TIM2, TIM_IT_Update)==1)
  6.     {
  7.         flag++;
  8.         led=~led;
  9.         if(led==0)
  10.         {
  11.             LED1_ON();
  12.         }
  13.         else
  14.         {
  15.         LED1_OFF();
  16.         }
  17.         if(flag==2)
  18.         {
  19.             led2=~led2;
  20.             flag=0;
  21.         }
  22.         if(led2==0)
  23.         {
  24.             LED3_ON();
  25.         }
  26.         else
  27.         {
  28.             LED3_OFF();
  29.         }
  30.          
  31.         TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
  32.     }
  33. }
复制代码




作者: 675315461    时间: 2018-7-3 19:31
谢谢很好
作者: zsyzdx    时间: 2018-7-4 11:30
可以两路输出!!!!!!!!!!!!!!!
作者: 长风007    时间: 2020-12-21 08:37
这个思路以是可以实现了。增加变量的方式也可以实现。




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