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.

280049芯片GPIO口上电后第一次动作时间过久

280049芯片调试,在初始化时先用调用函数InitGpio()集中配置了GPIO的特性,如配置为普通IO模式、输出引脚、不同步,然后继续配置完其他几个模块后,调用函数Init_Specific_Gpio()将GPIO先拉低,延时10us后再拉高。但通过示波器实测该引脚拉低后1.5ms才拉高,具体代码如下:

void Hw_Init(void)
{
    InitSysCtrl();
   //CMPSS module initialization must earlier than EPWM module
   //
    InitCMPSS();
    InitXBAR();
    InitEPwm();
    InitGpio();
    Init_Can_Data();
    InitEcan();
    InitEcap();
    InitEQep();
    InitAdc();
    InitSpi();
    Init_Specific_Gpio();
    // this delay for PGA411 power on
    DEVICE_DELAY_US(12000);
    //Init_Resolver();
   Init_Eqep_Initial_Val();
   Init_Data_Log();
}
void InitGpio(void)
{
    GPIO_setPadConfig(28,GPIO_PIN_TYPE_STD);
    GPIO_setPinConfig(GPIO_28_GPIO28);
    GPIO_setDirectionMode(28,GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(34,GPIO_PIN_TYPE_STD);
    GPIO_setPinConfig(GPIO_34_GPIO34);
    GPIO_setDirectionMode(34,GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(25,GPIO_PIN_TYPE_STD);
    GPIO_setPinConfig(GPIO_25_GPIO25);
    GPIO_setDirectionMode(25,GPIO_DIR_MODE_IN);
    GPIO_setQualificationMode(25,GPIO_QUAL_SYNC);
    GPIO_setPadConfig(33,GPIO_PIN_TYPE_STD);
    GPIO_setPinConfig(GPIO_33_GPIO33);
    GPIO_setDirectionMode(33,GPIO_DIR_MODE_IN);
    GPIO_setQualificationMode(33,GPIO_QUAL_SYNC);
    GPIO_setPadConfig(22,GPIO_PIN_TYPE_STD);
    GPIO_setPinConfig(GPIO_22_GPIO22);
    GPIO_setDirectionMode(22,GPIO_DIR_MODE_IN);
    GPIO_setQualificationMode(22,GPIO_QUAL_SYNC);
    //PIN22脚默认是analog模式,此处是将其配置为普通IO模式
    //仅22和23脚有此特性
    GPIO_setAnalogMode(22,GPIO_ANALOG_DISABLED);
}
void Init_Specific_Gpio(void)
{
    u16 i=0;
    //SPI for PGA411 related
    GPIO_writePin(15, 1);

    //SPI for EEPROM related
    GPIO_writePin(11, 1);
    //PGA411 reset related
    for(i=0;i<10;i++)
    {
        GPIO_writePin(34, 0);
        DEVICE_DELAY_US(10);
        GPIO_writePin(34, 1);
    }
}

但该引脚一旦动作后,后续再操作该引脚就正常了(如连续10次拉低-拉高GPIO34,除去第一次,后续9次均正常)。

若配置完IO口特性后立即操作IO口,则正常动作。不清楚是什么原因,希望有高手不吝赐教。