下面是我的被调函数,用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);
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>