USMART调用函数后老显示函数错误

2019-07-20 17:03发布

下面是我的被调函数,用usmart修改参数变量值,其实最终是改变程序的全局变量的值,好在另一个中断函数中使用。中断函数有回传到串口的值。这样在调用的时候总是会出现函数错误的指示。但是好像函数是执行了。
void set_commond(u16 out_val,u8 step_val,u8 duration,u8 motion,u8 updown )
{
        dacval = out_val;//DAC设定值mv
        step = step_val;//DAC输出增量
        num = duration;//持续时间,单位s
        dir = updown;//1向上递增
        if(0 != motion)                   //若接收缓存字符串中含有"start"就表示开始启动电机
        {
                cycles = 0;
                Dac1_Set_Vol(dacval);//设置DAC值
                EXTI->IMR |= 1<<0;//不屏蔽Line0上的中断
                EXTI->IMR |= 1<<4;//不屏蔽Line4上的中断
                TIM_SetCounter(DAC_TIM,0);//设置timer7计数器值为0
                TIM_Cmd(DAC_TIM, ENABLE);
        }
        else                    //若接收缓存字符串中含有"stop"就表示停止电机
        {
                cycles = 0;
                Dac1_Set_Vol(0);//设置DAC值,10=10mV
                EXTI->IMR &= ~(1<<0);//屏蔽Line0上的中断
                EXTI->IMR &= ~(1<<4);//屏蔽Line4上的中断
                TIM_Cmd(DAC_TIM, DISABLE);
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。