我查過資料了
NMEA的CHECKSUM是把$與*之間的每個字元(不含,)進行XOR所得到的值
但是 我的GPS傳過來的資料 只要是GPVTG的 就一定有錯
GPGGA與GPRMC的反倒都沒錯
像是下列字串

$GPVTG,,T,,M,0.00,N,0.0,K,A*13

$與*之間的每個字元(不含,)XOR之後得到的值是3F 並不是13

如果只是接到一次這樣子的訊息 那有可能是傳輸過程出錯
但是 我遇到的狀況是只要是GPVTG GPGSA GPGSV 一定出錯
所以想請問各位大大一下 NMEA 0183的CHECKSUM 是怎麼計算的?
難道 不同的MESSAGE會有不同的CHECKSUM算法嗎? 謝謝!
文章關鍵字

cappirossi wrote:
我查過資料了
NMEA的CHECKSUM是把$與*之間的每個字元(不含,)進行XOR所得到的值
但是 我的GPS傳過來的資料 只要是GPVTG的 就一定有錯
GPGGA與GPRMC的反倒都沒錯
像是下列字串

$GPVTG,,T,,M,0.00,N,0.0,K,A*13

$與*之間的每個字元(不含,)XOR之後得到的值是3F 並不是13


(不含,) --->這句話是錯的....

GPGGA與GPRMC的 , 可能剛好是偶數個,所以有算沒算都不影響結果
GPVTG 的 , 是奇數個,所以沒算就會影響結果,所以你把 3f xor 2c ===> 13

文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!