(28027芯片)在使用没有触发功能的引脚的情况下,使用一般IO口,IO口配置如下:
GPIO_setMode(obj->gpioHandle,GPIO_Number_32,GPIO_32_Mode_GeneralPurpose);// FAULTn 出错 GPIO_setDirection(obj->gpioHandle,GPIO_Number_32,GPIO_Direction_Input);
外接上拉电阻,再输入芯片,读取引脚电平状态代码如下:
if(GPIO_getData(gpioHandle, GPIO_Number_32)==LOW)
{
usDelay(2000);
if(GPIO_getData(gpioHandle, GPIO_Number_32)==LOW)
{
GPIO_setLow(halHandle->gpioHandle,GPIO_Number_6);//禁止使能DRV8301
HAL_disablePwm(halHandle);
for(j=0;j<10;j++)
{
HAL_LED(halHandle,3);//DRV故障,闪灯警示
usDelay(10000);
HAL_LED(halHandle,1);//Gpio34亮
usDelay(10000);
}
}
}
但是在正常情况下,程序会执行这段代码,这是为什么呢?
我的理解是:8301错误引脚是开漏输出,外接上拉电阻,正常情况下,应该是读到高电平,不会执行这段程序才对;只有当故障时,8301输出低电平,才会执行这段代码。
然而却不是这样,求各位大神指教,急急急!!!