
附中文开源调试上位机NEO-6M / ATGM336H 通用一、先说痛点买了 GPS/北斗模块NEO-6M、NEO-M8N、中科微 ATGM336H 等接好 USB-TTL、打开串口助手屏幕上滚出满屏的 $GNGGA、$GNRMC完全不知道在说什么想找个上位机看看u-center 只支持 u-blox 自家芯片还是英文界面GNSSToolKit 主要配套中科微模块普通串口助手又只能看一堆原始字符。这篇文章分两部分10 分钟看懂 NMEA-0183 协议以后串口打印的每一行你都能读懂分享一个笔者开发并开源的中文、免安装、通吃所有 GPS/北斗模块的调试上位机没有硬件也能用演示模式体验。二、NMEA-0183 是什么NMEA-0183 是 GNSS 模块统一遵循的输出协议本质是 ASCII 文本一行一条语句以 $ 开头以 * 加两位校验和结尾最后回车换行。例如$GNGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76语句前缀代表卫星系统$GP GPS美国$BD / $GB 北斗中国 BDS$GA Galileo欧盟$GL GLONASS俄罗斯$GN 多模联合输出现在的模块最常见三、五条核心语句逐个看懂语句含义关键字段GGA定位数据UTC 时间、纬度、经度、定位质量0无效1GPS 定位2差分、参与定位卫星数、HDOP、海拔高度RMC推荐最小定位信息最常用时间、状态位 A有效 / V警告、经纬度、速度节、航向角、日期GSA当前卫星选择与精度因子定位模式1未定位2二维3三维、参与解算的卫星 PRN、PDOP/HDOP/VDOPGSV可见卫星与信号强度可见卫星总数、每颗卫星的 PRN、高度角、方位角、信噪比 SNR数据量大时自动分多帧VTG航向与地面速度航向角、速度节、速度km/h行尾的 *76 是校验和把 $ 与 * 之间的字符逐字节异或结果转成两位十六进制。校验不通过说明这一帧数据传输出错应当丢弃——正规上位机会自动完成这个校验。四、怎么判断模块已经正常定位RMC 的状态位是A不是 VGGA 定位质量为1 或 2不是 0GSV 中可见卫星≥4 颗SNR 普遍在 20 以上30 以上信号很好模块需要看到天空室内基本无法定位建议靠窗或室外测试。五、一个开源的中文上位机盯着滚动文本看经纬度和信号变化太反人类笔者用 Python PySide6 开发了一个 Windows 上位机并在 Gitee 开源把这些数据全部可视化。主要功能自动扫描串口波特率4800~115200、数据位、停止位、校验位均可配置完整解析 GGA/RMC/GSA/GSV/VTG自动校验和验证错误语句标红支持 GPS、北斗、Galileo、GLONASS 四大星座定位信息卡片定位状态、UTC 时间、经纬度、海拔、速度、航向、卫星数卫星信号强度SNR柱状图直观区分哪些卫星参与了定位GSV 多帧自动合并原始数据面板时间戳、自动滚屏演示模式没有模块也能注入模拟 NMEA 数据开箱体验。上位机主界面全貌定位信息卡片状态 / 经纬度 / 海拔 / 速度 / 航向卫星信号强度SNR柱状图原始数据面板错误语句自动标红六、使用教程接线模块TX 接 USB-TTL 的 RXRX 接 TXGND 共地VCC 按模块要求接 3.3V 或 5V双击运行软件选择对应串口号波特率一般为9600NEO-M8N、ATGM336H 出厂多为9600部分模块为 38400/115200以手册为准数据位 8、停止位 1、无校验点「打开串口」定位信息和卫星图实时刷新手头没有模块点「▶ 演示模式」立即体验。七、开源地址与下载项目已在 Gitee 开源发行版页面可直接下载免安装 exe免登录、无密码https://gitee.com/createsome-software/gps-serial-tool/releases/tag/v1.0.0系统要求Windows 10 / 1164 位解压后双击运行无需安装、无需联网。杀毒软件误报说明个人开发软件用 PyInstaller 打包后被误报是普遍现象火绒 / 360 请选择「信任此文件」Windows Defender 点「更多信息」→「仍要运行」。八、常见问题Q打开串口没有数据A检查 TX/RX 是否接反、波特率是否与模块一致、驱动CH340/CP2102是否装好。Q支持哪些模块A所有输出 NMEA-0183 标准语句的 GPS/北斗/GNSS 模块都支持不限品牌、不限芯片。结语项目地址https://gitee.com/createsome-software/gps-serial-tool 欢迎 Star、提交 Issue 和 PR一起把它完善下去。