MT2503使用GPS问题,求帮主
open uart2后,uart1上就开始打印乱码。不知道什么毛病,求各位大哥指导。本人新入mtk的坑。
uart2看别人帖子里说的是gps芯片mt3333发出的NEMA格式的数据。
不懂,帮顶,我是进来学习的。之前搞单片机时出现这情况 一般是波特率有问题
我量了 波特率变的很大。很诡异。我不open uart2就正常
能说下你们的实现方式吗?GPS模块使用的是Uart2,如果自己重新初始化Uart2是会有异常的。我们还碰到一种情况,自己去解析GPS数据,会导致GPS Task和APGS Task没有了消息的交互,导致APGS无法使用。
具体描述下你们的实现方式?
我们是自己解析GPS(系统解析过程木有找到)数据的,Uart1当做调试口,GPS模块是固定使用Uart2的,MTK都已经做好了,不需要重新初始化的,我们是在gps初始化部分写了接收回调,但是这样会有一个问题,就是GPS task和AGPS task没有了消息的交互,导致APGS无法使用。
用的是DclSerialPort_Open DclSerialPort_Control这些函数进行操作的。
6楼使用的GPS具体是哪个task?我现在还没得到GPS数据。
请问你MT2503的AGPS部分具体是怎么使用的?
我是直接调用:GPS_Init(CustomGpsRecvCallbackSetHandle);
void CustomGpsRecvCallbackSetHandle(kal_bool flag)
{
DCL_HANDLE handle;
UART_CTRL_REG_RX_CB_T data;
if (!flag)
return;
data.u4OwenrId = MOD_GPS;
data.func = CustomGpsRecvHandler; //GPS回调
handle = DclSerialPort_Open(uart_port2, 0); // gps_uart_port
DclSerialPort_Control(handle, SIO_CMD_REG_RX_CB, (DCL_CTRL_DATA_T*)&data);
}
void CustomGpsRecvHandler(UART_PORT port)
{
if (port == uart_port2)
{
处理:GPS_UART_Read
再清除缓存;
}
}
这样处理会影响到APGS,请小心参考。
AGPS Task和GPS Task需要消息的交互,因为找不到MTK处理GPS接收部分的接口,所以我才自己写了个接收GPS的,结果就是AGPS目前用不上。
我是进来学习的
你的GPS_Init(CustomGpsRecvCallbackSetHandle);是在哪里调用的。
是在gps的task里面吗?
非常感谢你的回复。对我很有帮助。
你也可以在MMI向GPS Task发消息:MSG_ID_TST_INJECT_STRING,你跟踪下代码就知道了。因为我们是无窗口(不带屏幕)操作的,所以直接在MMI Task里调用了它。