toengineer 发表于 2014-3-12 19:31:58

STM32的正交编码器计数器在程序中复位为什么会导致程序死掉

我在程序中取完计数器的值后,把那个TIMx->CNT=0;程序如下
void GetMotorPulse(void)
{
        short nLeftPulse, nRightPulse;

        nLeftPulse=TIM_GetCounter(TIM1);                                                       //读取计数器中的值
        nRightPulse=TIM_GetCounter(TIM8);
       
        g_nLeftMotorPulseSigma += nLeftPulse;                                                       //累加脉冲
        g_nRightMotorPulseSigma += nRightPulse;

        TIM_SetCounter(TIM1, 0);                                                                        //用于复位计数器TIMx->CNT=0;
        TIM_SetCounter(TIM8, 0);                                                                        //

       
        nRightPulse=0;
        nRightPulse=0;
}

只要调用红色的程序就会卡住,STM32就死了,中断中的程序还可以运行,本人一个刚学STM32的小菜鸟,求高手们帮忙解答一下

LZ19992005 发表于 2014-3-14 23:01:02

看看。学习之!!

wyq200704 发表于 2014-3-29 22:32:47

开中断了吧。。。没有清中断标志位

lidreamer 发表于 2014-3-30 08:40:02

我也遇到了,求解答~

toengineer 发表于 2014-3-31 09:18:38

wyq200704 发表于 2014-3-29 22:32
开中断了吧。。。没有清中断标志位

嗯是这样子的

toengineer 发表于 2014-3-31 09:19:30

lidreamer 发表于 2014-3-30 08:40
我也遇到了,求解答~

我的是开中断,没有在中断函数里面清标志位。
页: [1]
查看完整版本: STM32的正交编码器计数器在程序中复位为什么会导致程序死掉