STM32F103RCT6的普通定时器T3,T4中断问题,存在开机后初始化,一打开允许中断,定时器立刻进入中断函数一次

2019-10-15 02:05发布

STM32F103RCT6的普通定时器T3,T4中断问题:
存在开机后初始化,在TIM3_Int_Init()里面,一打开允许中断函数TIM_ITConfig(),定时器立刻进入中断函数一次。只进一次。
初始化函数最后已经关闭定时器:
TIM_Cmd(TIM3, DISABLE);  //暂关闭TIMx外设。将这个函数提到初始化最前面也没用。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
STM32VBT6
1楼-- · 2019-10-15 02:35
http://www.openedv.com/posts/list/38198.htm
看看我的回答,试试。20楼
ahamao
2楼-- · 2019-10-15 06:51
回复【4楼】ahamao:
---------------------------------
谢谢,答案是正解。
不过软件步骤没有那么严格。我先开的中断,再清零中断标志,最后开启定时器也可以的。
正点原子
3楼-- · 2019-10-15 10:14
这个问题,貌似无法避免,论坛之前有网友说找到解决办法了,但是后面有网友测试,也是一样。
你从其他地方详细解决方法吧。
ahamao
4楼-- · 2019-10-15 15:02
回复【2楼】正点原子:
---------------------------------
谢谢,可能这确实是STM32在芯片设计上面存在的小BUG吧。不过通过楼下的方法也可以软件弥补。
wjw520
5楼-- · 2019-10-15 20:05
 精彩回答 2  元偷偷看……
回复【3楼】STM32VBT6:
---------------------------------
您好,谢谢你的回答,让我解决了定时器中断的定时器启动后会立即进入更新中断的问题,现在我遇到一个问题想向你请教一下。
   while((40<tp_dev.x[t]&&tp_dev.x[t]><160)&&(160<tp_dev.y[t]&&tp_dev.y[t]><280))
{
                                        TIM3_Int_Init(50000-1,8400-1);
break;
}

如上述程序,我想通过触摸触摸屏上相应区域才开始初始化定时器3,但是一按下去之后,它并没有定时5s后进入中断,而是立即进入中断,这该怎么解决呢?感激不尽,谢谢.

一周热门 更多>