请教关于向GPS写入数据的问题
小弟现在正在做一个GPS导航的项目,用的是GR-89的模块。自己先在PC机上写了一个接受程序,发现能正常接受GPS发过来的信息。四条语句都能就收到(GLL语句出厂默认被关闭)。现在想写一个控制程序,通过写控制报文来对GPS的工作模式进行控制。可是不管怎么写命令就是没反应。
比如我想设置模块串口的工作方式是 波特率:9600 数据位:8位 无奇偶校验 一位停止位。那么报文应该是$PSRF100,0,9600,8,1,0*0c
可是不管我怎么写模块就是没反应,还是出厂预设的4800。。。。。。按NMEA-0183协议的资料说还要在后面加上结束符也就是回车和换行,也就是13,10 。可是我加了还是不行,不管怎么改就是没反应。我是用C写的发送和接受程序。接受用的是ReadFile(hPort,msg,n_msg,&n_in,NULL);发送程序也就是发命令程序用的是WriteFile(hPort,ord,n_msg,&n_out,NULL);不知道是程序问题还是命令格式不对。自我感觉程序没错,因为我用那个程序能向我的51单片机开发板里写信息。而且我用串行调试助手向GPS模块里面写命令也不行。问题到底出哪了,程序不对、命令字格式不对还是协议不对?????
还有我想问的就是GPS输出数据用的是NMEA 0831协议那么输入也就是向里面写数据用的是什么协议啊还是NMEA协议么,那个Sirf二位元编码是什么东西。
注:我向模块写命令字的方法就是把上面的报文作为一段字符串通过RS232接口直接写进去的。是不是不能这样写啊。如果不能得话那又要怎么写才行,那位高手速度解惑一下啊,小弟不甚感激。问题急待解决,在线等。。。。。。。。。。。。。。
[解决办法]
第一,你清楚他们之间的通讯协议啊~
第二,要注意串口通讯的事项。。