STM32/STM8技术论坛
直播中

乐骞添

7年用户 1011经验值
私信 关注
[问答]

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

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,%xrn",TIM1_GetCounter(),TIM2_GetCounter(),TIM4_GetCounter());
  32.         }
  33. }

输出结果是把3个TIM的CNT打印出来,但只有TIM1在跑。
谢谢!

回帖(8)

barrysun

2018-8-31 10:32:08
要时常的更新你的库和文件
举报

乐骞添

2018-8-31 18:06:25
终于好了,固件库有问题。
STM8S103F3的spec上描述TIM4的地址为0x005340,其后是两个保留字节。
而固件库上,TIM4的结构体中没有这两个保留字节,因此导致错位!
TIM2的问题也是同样处理。

举报

乐骞添

2018-8-31 18:17:10
原来是固件库版本太低了,用4.0.0就好了。
举报

罗兰君

2018-8-31 18:31:35
呵呵, 有新的固件库就得用更新的试试
举报

崔琳

2018-8-31 18:47:12
寄存器使用错误导致。  在使用stm库函数时,还是需要看看寄存器手册,寄存器手册才是最权威的,
举报

王颖

2018-8-31 19:01:03
不是吧 库的版本低也会出现这问题
举报

袁沁茹

2018-8-31 19:07:43
建议楼主还是查一下原因。 我用2.0的库都没有任何问题。固件库问题可能性太小了。
举报

CHNlyt

2018-8-31 21:10:41
学习一下。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分