OpenEdv-开源电子网

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

TIM2无法关闭

[复制链接]

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
发表于 2018-8-23 16:25:18 | 显示全部楼层 |阅读模式
3金钱
单片机型号:STM32F103C8T6
我用TIM2做了个定时104us,但是在初始化的时候不开启,在别处开启。程序如下:
但是在初始化后,定时器并没有关闭,直接开始工作,并且能进中断。这是哪里出了问题?
void TIM2_INIT(void)
{
        TIM_TimeBaseInitTypeDef TIM_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
       
        TIM_InitStructure.TIM_ClockDivision     = TIM_CKD_DIV1;
        TIM_InitStructure.TIM_CounterMode       = TIM_CounterMode_Up;
        TIM_InitStructure.TIM_Period            = 5;
        TIM_InitStructure.TIM_Prescaler         = 1247;
        TIM_InitStructure.TIM_RepetitionCounter = 0;
        TIM_TimeBaseInit(TIM2,&TIM_InitStructure);
        TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
        TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
        TIM_Cmd(TIM2,DISABLE);
       
        NVIC_InitStructure.NVIC_IRQChannel                   = TIM2_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelCmd                = ENABLE;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority        = 1;
        NVIC_Init(&NVIC_InitStructure);
}

最佳答案

查看完整内容[请看2#楼]

把TIM_ITConfig()函数和TIM_ClearITPendingBit()函数互换一下
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
385
金钱
385
注册时间
2018-7-19
在线时间
126 小时
发表于 2018-8-23 16:25:19 | 显示全部楼层
把TIM_ITConfig()函数和TIM_ClearITPendingBit()函数互换一下
回复

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2017-3-15
在线时间
33 小时
发表于 2018-8-23 23:51:09 | 显示全部楼层
可能有TIM2使能语句在某个函数里
回复

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
 楼主| 发表于 2018-8-24 09:32:45 | 显示全部楼层
江鱼 发表于 2018-8-23 23:51
可能有TIM2使能语句在某个函数里

我都单步调试过了,没有发现哪个函数将其使能了
回复

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
 楼主| 发表于 2018-8-24 09:33:49 | 显示全部楼层
坐看风 发表于 2018-8-24 09:24
把TIM_ITConfig()函数和TIM_ClearITPendingBit()函数互换一下

可以了,但是为什么?
回复

使用道具 举报

7

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
385
金钱
385
注册时间
2018-7-19
在线时间
126 小时
发表于 2018-8-24 10:00:51 | 显示全部楼层
午夜狼嚎 发表于 2018-8-24 09:33
可以了,但是为什么?

芯片原因吧,只要记住无论干嘛  先清标志就对了  不仅仅是定时器
回复

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
 楼主| 发表于 2018-8-24 10:36:10 | 显示全部楼层
坐看风 发表于 2018-8-24 10:00
芯片原因吧,只要记住无论干嘛  先清标志就对了  不仅仅是定时器

好吧,谢谢!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 02:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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