MTK串口关不了的问题!!!
在MTK下,现在的问题是:
打开GPS的同时也唤醒了串口,但关闭GPS的同时也关闭串口,发现GPS关闭了,而串口却没有关掉,感觉关串口的代码也没有问题啊,不知道是怎么回事....!!求大牛解惑!!!!!
初始化串口代码如下:
void SIRF4_UART2_INIT(void)
{
kal_bool bSuccess = KAL_FALSE;
//SetProtocolEventHandler(SIRF4_UART2_READ, MSG_ID_UART_READY_TO_READ_IND);
UART_Close(GPS_UART, UART_GetOwnerID(GPS_UART));
GPIO_ModeSetup(22, 1);
GPIO_ModeSetup(23, 1); //UART2
UART_HWInit(GPS_UART);
uart_dcb_sirf4.baud = (UART_baudrate) UART_BAUD_4800;
UART_TurnOnPower(GPS_UART, KAL_TRUE);
UART_SetOwner (GPS_UART, MOD_SIRF4);
bSuccess = UART_Open(GPS_UART, MOD_SIRF4);
UART_SetDCBConfig(GPS_UART, &uart_dcb_sirf4, MOD_SIRF4);
UART_Register_RX_cb(GPS_UART, MOD_SIRF4, SIRF4_uart_callback);
}
关闭串口代码:
static void SIRF4_POWER_OFF(void)
{
GPIO_WriteIO(0, GPS_GPIO_RF);
GPIO_WriteIO(0, GPS_GPIO_EN);
SIRF4_Delayms(30);
GPIO_WriteIO(1, GPS_GPIO_EN);
//SIRF4_Delayms(30);
//GPIO_WriteIO(0, GPS_GPIO_EN);
UART_TurnOnPower(GPS_UART, KAL_FALSE);
UART_Close(GPS_UART, MOD_SIRF4);
L1SM_SleepEnable(gps_sleep_handle);
print_debug("SIRF4_POWER_OFF...............");
}
求MTK大神啊!!!!!!!!!
[解决办法]
MTK系统,去“嵌入”板块问问吧。-_-
[解决办法]
最近在高通平台也遇到类似问题,建议你去查下它这个关闭串口的代码,因为程序可能在关闭的时候死等一个事件(而程序中有可能对这个事件设置信号的时候时序出了问题,所以一直等待下去),你可以尝试着去设置超时,然后再手动的把资源释放掉。
[解决办法]
测试单独打开串口和关闭串口看看有没有问题