STM8S103F3 无法运行 TIM2、TIM4,时钟已开但CNT不跑,求帮助

2019-07-14 18:11发布

rt

现象:用相同的方法配置tiM1、TIM2、TIM4,但TIM1正常,TIM2、TIM4完全不跑,找了很久资料毫无进展,求帮助,看有啥缺漏,谢谢!!!

固件库2.1.0
IAR stm8 1.41.1
使用st-link v2

  1. void main(void)
  2. {
  3.         CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);


  4.         /*
  5.         串口初始化代码
  6.         */


  7.         /*TIM1初始化*/
  8.         CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1,ENABLE);
  9.         TIM1_DeInit();
  10.         TIM1_SetCounter(0);
  11.         TIM1_TimeBaseInit(15999,TIM1_COUNTERMODE_UP,100,0);


  12.         /*TIM2初始化*/
  13.         CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2,ENABLE);
  14.         TIM2_DeInit();
  15.         TIM2_SetCounter(0);
  16.         TIM2_TimeBaseInit(TIM2_PRESCALER_16384, 100);
  17.         TIM2_PrescalerConfig(TIM2_PRESCALER_16384,TIM2_PSCRELOADMODE_UPDATE);


  18.         /*TIM4初始化*/
  19.         CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4,ENABLE);
  20.         TIM4_DeInit();
  21.         TIM4_SetCounter(0);
  22.         TIM4_TimeBaseInit(TIM4_PRESCALER_128, 100);
  23.         TIM4_PrescalerConfig(TIM4_PRESCALER_128,TIM4_PSCRELOADMODE_UPDATE);


  24.         /*使能定时器*/
  25.         TIM1_Cmd(ENABLE);
  26.         TIM2_Cmd(ENABLE);
  27.         TIM4_Cmd(ENABLE);


  28.         while(1)
  29.         {
  30.                 /*打印当前CNT值*/
  31.                 printf("%x,%x,%x ",TIM1_GetCounter(),TIM2_GetCounter(),TIM4_GetCounter());
  32.         }
  33. }
复制代码
输出结果是把3个TIM的CNT打印出来,但只有TIM1在跑。
谢谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。