This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于instaspin中gMotorVars.Flag_Run_Identify设置问题

Other Parts Discussed in Thread: DRV8305

本人用的是28069m与drv8305的组合,工程运行的是lab5b,想实现的功能是:按键按下,gMotorVars.Flag_Run_Identify设置为1,但是目前实现的是:除非手动置1之后,再按键才会出现变化。

    if(HAL_readGpio(halHandle,gpioNumber1) == LOW)
    {
        usDelay(100000);
        if(HAL_readGpio(halHandle,gpioNumber1) == LOW)
       {
            gMotorVars.Flag_Run_Identify = true;
        }
        else
        {
            gMotorVars.Flag_Run_Identify = false;
        }
    }

先手动置1之后,按键按下为1,弹起为0,之后才能正常使用按键设置标志。所以想请问如何把手动置1去除掉,前提是不能在main.h中改变值(因为前面有关于标志值的程序运行)

  • 你是用了一个GPIO作为摁键输入的吗?
    没尝试过这种方式控制gMotorVars.Flag_Run_Identify,个人猜想是不是添加的位置不对。在没有手动置1之前程序没有运行到判断这个函数值的语句。可以单步运行一下看这个函数的变化情况
  • Green Deng 说:
    你是用了一个GPIO作为摁键输入的吗?

    是的

    Green Deng 说:
    没尝试过这种方式控制gMotorVars.Flag_Run_Identify,个人猜想是不是添加的位置不对。

    这个不太清楚,因为按键的功能除了使能运行标志位,还有速度值给定的功能,所以我把它放在if(EST_isMotorIdentified(obj->estHandle))这个语句的下面,我尝试换一下位置试试。