定时器中断函数内不能调用可以返回参数的函数

2019-10-16 04:30发布

最近在用STM32F103R8T6做一个无刷电机的驱动程序,其中用TIM1高级定时器做了一个定时中断,方便做控制。程序的配置上,定时器1工作正常,如果只是调用普通函数是没有问题的,但是在调用有参数返回的函数的时候,中断函数并没有退出。
程序大概如下:

void TIM1_UP_IRQHandler(void)
{
      if(TIM_GetITStatus(TIM1 , TIM_IT_Update) == SET)
      {
              TIM_ClearITPendingBit(TIM1 , TIM_IT_Update);
              LED_On_Only(LED1);                                            //程序工作正常
              //angle = Get_Angle();                                          //加上这句的时候程序就死中断里面没有出来
      }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
黄阿厉
1楼-- · 2019-10-17 03:09
xyl210xyl 发表于 2016-12-5 10:20
用这样阻塞的方式是不行的,spi出错电机堵转怎么办

阻塞的方式?请详解
xyl210xyl
2楼-- · 2019-10-17 05:45
黄阿厉 发表于 2016-12-5 11:30
阻塞的方式?请详解

阻塞相对的是中断,这么说你应该理解了,你这种环境需要硬实时,软件运算超时会影响电机运转

一周热门 更多>