你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
yiminglei 提问时间:2013-12-26 21:15 /
 rt

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

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

void main(void)
{
        CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);

        /*
        串口初始化代码
        */

        /*TIM1初始化*/
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1,ENABLE);
        TIM1_DeInit();
        TIM1_SetCounter(0);
        TIM1_TimeBaseInit(15999,TIM1_COUNTERMODE_UP,100,0);

        /*TIM2初始化*/
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2,ENABLE);
        TIM2_DeInit();
        TIM2_SetCounter(0);
        TIM2_TimeBaseInit(TIM2_PRESCALER_16384, 100);
        TIM2_PrescalerConfig(TIM2_PRESCALER_16384,TIM2_PSCRELOADMODE_UPDATE);

        /*TIM4初始化*/
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4,ENABLE);
        TIM4_DeInit();
        TIM4_SetCounter(0);
        TIM4_TimeBaseInit(TIM4_PRESCALER_128, 100);
        TIM4_PrescalerConfig(TIM4_PRESCALER_128,TIM4_PSCRELOADMODE_UPDATE);

        /*使能定时器*/
        TIM1_Cmd(ENABLE);
        TIM2_Cmd(ENABLE);
        TIM4_Cmd(ENABLE);

        while(1)
        {
                /*打印当前CNT值*/
                printf("%x,%x,%x\r\n",TIM1_GetCounter(),TIM2_GetCounter(),TIM4_GetCounter());
        }
}

输出结果是把3个TIM的CNT打印出来,但只有TIM1在跑。
打印结果如下:
1,0,1
2,0,1
4,0,1
5,0,1
6,0,1
7,0,1
9,0,1
a,0,1
b,0,1
d,0,1
e,0,1
f,0,1

谢谢!
收藏 评论6 发布时间:2013-12-26 21:15

举报

6个回答
yiminglei 回答时间:2013-12-26 22:29:14

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

终于好了,固件库有问题。
STM8S103F3的spec上描述TIM4的地址为0x005340,其后是两个保留字节。
而固件库上,TIM4的结构体中没有这两个保留字节,因此导致错位!
TIM2的问题也是同样处理。
固件库.jpg
spec.jpg
yiminglei 回答时间:2013-12-26 22:55:52

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

原来是固件库版本太低了,用4.0.0就好了。
有缘于你 回答时间:2013-12-27 12:02:59

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

呵呵, 有新的固件库就得用更新的试试
wkuang 回答时间:2013-12-27 23:02:29

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

寄存器使用错误导致。  在使用stm库函数时,还是需要看看寄存器手册,寄存器手册才是最权威的,
勒布朗 回答时间:2013-12-28 19:32:25

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

不是吧 库的版本低也会出现这问题
Hiker天下 回答时间:2013-12-29 17:32:24

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

建议楼主还是查一下原因。 我用2.0的库都没有任何问题。固件库问题可能性太小了。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版