其他分享
首页 > 其他分享> > 串口初始化不通过问题

串口初始化不通过问题

作者:互联网

    FGpioPs_T* gpios;

这种实例定义可能会遇到gpios没分配空间的问题,造成初始化不通过等,我遇到的问题是,在初始化前定义变量会影响初始化,如代码:

    int Status = 0;
    FGpioPs_T* gpios;
    FGpioPs_Config* gpio_cfgPpr;
    
    gpio_cfgPpr = FGpioPs_LookupConfig(FPAR_GPIOPS_2_DEVICE_ID);    
    FGpioPs_init(gpios,gpio_cfgPpr);
    FGpioPs_setDirection(gpios, 0x1);
    FGpioPs_writeData(gpios, 0);
    Status =  FGpioPs_readData(gpios);
    printf("Status = 0x%x\r\n", Status);

代码会卡在FGpioPs_init()函数。如过没有 “ int Status = 0”会通过初始化,但之后如果有变量定义串口就不能操作了。会卡死程序。

解决方法:改变实例定义

FGpioPs_T gpios;

初始化代码为:

    int Status = 0;
    FGpioPs_T gpios;
    FGpioPs_Config* gpio_cfgPpr;
    
    gpio_cfgPpr = FGpioPs_LookupConfig(FPAR_GPIOPS_2_DEVICE_ID);
    FGpioPs_init(&gpios,gpio_cfgPpr);
    FGpioPs_setDirection(&gpios, 0x1);
    FGpioPs_writeData(&gpios, 0);
    Status =  FGpioPs_readData(&gpios);
    printf("Status = 0x%x\r\n", Status);

标签:Status,初始化,gpios,通过,串口,gpio,cfgPpr,FGpioPs
来源: https://blog.csdn.net/RyanLee90/article/details/119420801