串口初始化不通过问题
作者:互联网
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