OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4850|回复: 4

STM32F1两个通用定时器共用一个时钟,让其中一个时钟不使能,另一个也不使能怎么解决

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2021-3-15
在线时间
3 小时
发表于 2021-4-2 14:24:21 | 显示全部楼层 |阅读模式
1金钱
void TIM3_Init(void)
{
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
        TIM_DeInit(TIM3);
       
        TIM_TimeBaseInitTypeDef TIM_TITDEF_TIM3;
       
        TIM_TITDEF_TIM3.TIM_Prescaler=7199;
        TIM_TITDEF_TIM3.TIM_Period=9999;
        TIM_TITDEF_TIM3.TIM_CounterMode=TIM_CounterMode_Up;         
        TIM_TITDEF_TIM3.TIM_ClockDivision=TIM_CKD_DIV1;
        TIM_TimeBaseInit(TIM3,&TIM_TITDEF_TIM3);
        TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
       
        NVIC_InitTypeDef NVIC_ITDef_TIM3;
        NVIC_ITDef_TIM3.NVIC_IRQChannel=TIM3_IRQn;
        NVIC_ITDef_TIM3.NVIC_IRQChannelPreemptionPriority=0;
        NVIC_ITDef_TIM3.NVIC_IRQChannelSubPriority=3;
        NVIC_ITDef_TIM3.NVIC_IRQChannelCmd=ENABLE;
       
        NVIC_Init(&NVIC_ITDef_TIM3);
       
        TIM_Cmd(TIM3,ENABLE);
       
}


void TIM2_Init(void)
{
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
        TIM_DeInit(TIM2);
       
        TIM_TimeBaseInitTypeDef TIM_TITDEF_TIM2;
       
        TIM_TITDEF_TIM2.TIM_Prescaler=7199;
        TIM_TITDEF_TIM2.TIM_Period=4999;
        TIM_TITDEF_TIM2.TIM_CounterMode=TIM_CounterMode_Up;         
        TIM_TITDEF_TIM2.TIM_ClockDivision=TIM_CKD_DIV1;
        TIM_TimeBaseInit(TIM2,&TIM_TITDEF_TIM2);
        TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
       
        NVIC_InitTypeDef NVIC_ITDef_TIM2;
        NVIC_ITDef_TIM2.NVIC_IRQChannel=TIM2_IRQn;
        NVIC_ITDef_TIM2.NVIC_IRQChannelPreemptionPriority=0;
        NVIC_ITDef_TIM2.NVIC_IRQChannelSubPriority=3;
        NVIC_ITDef_TIM2.NVIC_IRQChannelCmd=ENABLE;
       
        NVIC_Init(&NVIC_ITDef_TIM2);
       
        TIM_Cmd(TIM2,ENABLE);
       
}
现在问题是在主函数内把TIM3使能失效(TIM_Cmd(TIM3,DISABLE))TIM2也失效了。。怎么解决这个问题??? 求大神支招

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2021-4-3 02:36:13 | 显示全部楼层
仿真看下寄存器状态,正常来说你那个不会相互影响才对
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2021-3-15
在线时间
3 小时
 楼主| 发表于 2021-4-6 15:15:05 | 显示全部楼层
正点原子 发表于 2021-4-3 02:36
仿真看下寄存器状态,正常来说你那个不会相互影响才对

还有另一个现象就是 因为两个定时器的时间设置不同,会导致后面程序时钟交替出现 。。DISABLE 之后ENABLE 有出现1S时钟周期就是TIM3,也有0.5S的时钟周期 TIM2
回复

使用道具 举报

11

主题

2147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4894
金钱
4894
注册时间
2015-1-10
在线时间
612 小时
发表于 2021-4-7 14:03:19 | 显示全部楼层
定时器独立的,还是好好检查程序吧
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2021-3-15
在线时间
3 小时
 楼主| 发表于 2021-4-7 15:31:47 | 显示全部楼层
阿侑kevin 发表于 2021-4-7 14:03
定时器独立的,还是好好检查程序吧

我定时器这样初始化没问题是吧??? 那我再去查一下别的代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 00:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表