本人用的是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中改变值(因为前面有关于标志值的程序运行)
Green Deng:你是用了一个GPIO作为摁键输入的吗?
没尝试过这种方式控制gMotorVars.Flag_Run_Identify,个人猜想是不是添加的位置不对。在没有手动置1之前程序没有运行到判断这个函数值的语句。可以单步运行一下看这个函数的变化情况
本人用的是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中改变值(因为前面有关于标志值的程序运行)
user6024771:
回复 Green Deng:
Green Deng你是用了一个GPIO作为摁键输入的吗?
是的
Green Deng没尝试过这种方式控制gMotorVars.Flag_Run_Identify,个人猜想是不是添加的位置不对。
这个不太清楚,因为按键的功能除了使能运行标志位,还有速度值给定的功能,所以我把它放在if(EST_isMotorIdentified(obj->estHandle))这个语句的下面,我尝试换一下位置试试。