滴答定时器的中断不进去了

2019-07-20 19:03发布

void GUI_X_Delay(int ms) {
  int tEnd = OS_TimeMS + ms;
  while ((tEnd - OS_TimeMS) > 0);//卡死在这个里面了
}
//滴答定时器中断函数
void SysTick_Handler(void)
{
OS_TimeMS++;
}

开始的时候可以进入中断,后来执行到GUI_X_Delay()函数内的这句话:
while ((tEnd - OS_TimeMS) > 0);//这句话肯定成立的
居然就不进入滴答定时器中断了,这个问题帮忙解答下

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
小陀螺爱炒蛋
1楼-- · 2019-07-20 23:19
看下systick的寄存器,是不是某个地方修改了寄存器的配置
lqhde158
2楼-- · 2019-07-21 01:17
我在移植emwin里面 的 main函数内 应该先GUIInit();
然后在配置滴答定时器;这样才可以
小陀螺爱炒蛋
3楼-- · 2019-07-21 02:57
 精彩回答 2  元偷偷看……
lqhde158
4楼-- · 2019-07-21 04:11
小陀螺爱炒蛋 发表于 2016-11-7 13:40
解决了吗?我想问,你的emwin是使用了systick作为gui_delay的延时时钟吗?

是的,我仿真的时候发现 必须在GUI_Init之后在配置Systick才可以。不然GUI_Init会关掉滴答定时器倒计时的。

一周热门 更多>