gps高手请进!

ahusd 2003-09-13 11:33:16
请教,基于恒基伟业的2028的gps开发,大家有没有经验或者例子,是急用啊!谢了!上次站长帮忙解决的问题,在这在谢一下!^_^!我现在手头一点资料都没有阿!急等,2小时刷一次!
...全文
70 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuing 2003-09-19
  • 打赏
  • 举报
回复
另外每个厂家的OEM板接受数据的顺序都有所不同,最好看一下OEM板的说明书。
xuing 2003-09-19
  • 打赏
  • 举报
回复
0183协议只能使用4800的波特率。
cockhorse 2003-09-19
  • 打赏
  • 举报
回复
具体的参数设置要看你的GPS的品牌和型号

dizzo 2003-09-18
  • 打赏
  • 举报
回复
检查一下你的波特率设置是否正确。

你在超级终端里能看到GPS的输出吗?
cockhorse 2003-09-15
  • 打赏
  • 举报
回复
下面是GPS的数据格式:
a.GPS固定数据输出语句($GPGGA)
这是一帧GPS定位的主要数据,也是使用最广的数据。
为了便于理解,下面举例说明$GPGGA语句各部分的含义。例1是用GN-77N和笔者开发的软硬件接口,在笔者所在地接收到的$GPGGA语句的内容。
例1:$GPGGA,050901,3931.4449,N,11643.5123,E,1,07,1.4,76.2,M,-7.0,M,,*65
其标准格式为:
$GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12)*hh(CR)(LF)
各部分所对应的含义为:
(1)定位UTC时间:05时09分01秒
  (2)纬度(格式ddmm.mmmm:即dd度,mm.mmmm分);
  (3)N/S(北纬或南纬):北纬39度31.4449分;
  (4)经度(格式dddmm.mmmm:即ddd度,mm.mmmm分);
  (5)E/W(东经或西经):东经116度43.5123分;
  (6)质量因子(0=没有定位,1=实时GPS,2=差分GPS):1=实时GPS;
  (7)可使用的卫星数(0~8):可使用的卫星数=07;
  (8)水平精度因子(1.0~99.9);水平精度因子=1.4;
 (9)天线高程(海平面,-9999.9~99999.9,单位:m);天线高程=76.2m);
  (10)大地椭球面相对海平面的高度(-999.9~9999.9,单位:m):-7.0m;
  (11)差分GPS数据年龄,实时GPS时无:无;
  (12)差分基准站号(0000~1023),实时GPS时无:无;
  *总和校验域;
  hh 总和校验数:65
  (CR)(LF)回车,换行。

b.可视卫星状态输出语句($GPGSV)
  例2:$GPGSV,2,1,08,06,33,240,45,10,36,074,47,16,21,078,44,17,36,313,42*78
  标准格式:
  $GPGSV,(1),(2),(3),(4),(5),(6),(7),…(4),(5),(6),(7)*hh(CR)(LF)
  各部分含义为:
  (1)总的GSV语句电文数;2;(2)当前GSV语句号:1;
  (3)可视卫星总数:08;
  (4)卫星号:06;
  (5)仰角(00~90度):33度;
  (6)方位角(000~359度):240度;
  (7)信噪比(00~99dB):45dB(后面依次为第10,16,17号卫星的信息);
  *总和校验域;
  hh 总和校验数:78;
  (CR)(LF)回车,换行。
  注:每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即:
  (4)-卫星号,(5)-仰角,(6)-方位角,(7)-信噪比。
c.$GPRMC
如果此时和卫星的通讯正常的话,可以接收到的数据格式样如下:
$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E
数据说明如下:
$GPRMC 代表GPS推荐的最短数据
204700 UTC_TIME 24小时制的标准时间,按照小时/分钟/秒的格式
A A 或者 V A表示数据"OK",V表示一个警告
3403.868 LAT 纬度值,精确到小数点前4位,后3位
N LAT_DIR N表示北纬,S表示南纬
11709.432 LON 经度值,精确到小数点前5位,后3位
W LON_DIR W表示西经,E表示东经
如果当前没有和卫星取得联系,那么字符串的格式为:
  $GPRMC,UTC_TIME,V,...
  下面是一个例子:
  $GPRMC,204149,V,,,,,,,170698,,*3A
dizzo 2003-09-15
  • 打赏
  • 举报
回复
找NMEA0183或者tsip协议文档看一看.
ahusd 2003-09-15
  • 打赏
  • 举报
回复
不好意思,怎么出来这么乱啊!
ahusd 2003-09-15
  • 打赏
  • 举报
回复
谢谢了木马!
不过,我怎么取不出数据来呢!?
端口也打开了!
hComPort = CreateFile(TEXT("COM1:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
0, NULL);
if (hComPort == INVALID_HANDLE_VALUE)
{
CloseHandle(hComPort);
MessageBox(hwnd, L"gps串口打开错误,请检查!", L"ahu", MB_OK);
}

MessageBox(hwnd, L"串口被打开", L"ahu", MB_OK);
//if (SetCommTimeouts (hComPort, &timeout) ==FALSE)
MessageBox(hwnd,L"测试串口超时",L"ahu",MB_OK);

//一个字符一个字符的从串口读取数据
tch = 0;
pPtr = szText;
for (i = 0; i < sizeof (szText)-sizeof (TCHAR); i++) {

while (!ReadFile (hComPort, pPtr, 1, &cBytes, NULL))
if (hComPort == INVALID_HANDLE_VALUE)
return FALSE;

// This syncs the proper byte order for Unicode.
tch = (tch << 8) & 0xff00;
tch |= *pPtr++;
if (tch == TEXT ('\n'))
break;
}
*pPtr++ = 0; // Avoid alignment probs by addressing as bytes.
*pPtr++ = 0;

// If out of byte sync, move bytes down one.
if (i % 2) {
pPtr = szText;
while (*pPtr || *(pPtr+1)) {
*pPtr = *(pPtr+1);
pPtr++;
}
*pPtr = 0;
}
SendDlgItemMessage (hwnd, IDC_EDITTEST, EM_REPLACESEL, 0,
(LPARAM)szText);

//rc = ReadFile(hComPort, szbuffer, 256, &cBytes, NULL);
//if (rc == TRUE)
// MessageBox(hwnd, L"gps串口读取成功!", L"ahu", MB_OK);
//显示出gps的内容
//MessageBox(hwnd, LPCTSTR(szbuffer), L"ahu", MB_OK);
//wcscpy(szbuffer,L"");
CloseHandle(hComPort);
MessageBox(hwnd, L"gps被关闭!", L"ahu", MB_OK);
klbt 2003-09-14
  • 打赏
  • 举报
回复
我没有,帮你顶。

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧