SOGO論壇
標題:
一串串列的16進制資料接收進來 要如何分解應用?
[列印本頁]
作者:
a37583758
時間:
2010-5-13 19:47:57
標題:
一串串列的16進制資料接收進來 要如何分解應用?
一串串列的16進制資料接收進來 要如何分解應用?
問題是這樣... 如...一串資料 如果接收進來資料狀態是一大串...
起始碼是訊號檢查碼 在這後面的資料都是需要用到的
如: 一串資料(0x01是檢查碼 後面的碼都是要用到的)
0x01,0x03,0x05,0xff,0xa0,0x6a,0xd0,0xcd,0xcc
一串這樣的碼接收到 一個預設變數
要怎樣塞到陣列 然後切割應用?
像是...我宣告一個陣列 static char Digital_Data[]={0,0,0,0,0,0,0,0,0};
要怎樣才能把訊號塞到 我欲設好的陣列預設位置?
作者:
edvx
時間:
2010-5-13 21:25:11
0x01,0x03,0x05,0xff,0xa0,0x6a,0xd0,0xcd,0xcc
一串這樣的碼接收到 一個預設變數
要怎樣塞到陣列 然後切割應用?
像是...我宣告一個陣列 static char Digital_Data[]={0,0,0,0,0,0,0,0,0};
Digital_Data[x]=y;
Digital_Data是陣列
x是儲存的位置
y是預設變數
作者:
a37583758
時間:
2010-6-20 18:28:42
標題:
回覆 #2 edvx 的帖子
如果我想要用DEV C++
用C語言模擬 一串資料 分別輸入後
再從陣列分別取出 所接收到的值 依序輸出 該怎麼做呢?
我比較頭痛的是 塞資料到陣列 的這部分...
作者:
不良歐吉桑
時間:
2010-6-21 10:14:47
你這是一維陣列啊,位址(或叫做 pointer)就是 x ,把 x 放到一個迴圈裏去,每塞入一個資料以後加一就好啦。
作者:
blackhole
時間:
2010-6-21 17:32:35
你應該是想說要怎麼把這一大串東西切開
然後塞近陣列裡面吧?
0x01,0x03,0x05,0xff,...變成
x[0]=0x01
x[1]=0x03
x[2]=0x05
這樣吧@@?
如果資料像你打的這樣
中間有很多逗點個開的話
可以使用strtok()這個函數(google一下)
如果沒有隔開
就使用strcmp找到資料串每個資料的起始位置
然後去作平移就好了
作者:
a37583758
時間:
2010-6-21 21:42:57
標題:
回覆 #5 blackhole 的帖子
恩... 正如你所說的 沒錯~!!
strtok() 的話 沒用過= ="
在DEV C++編譯器應該是能用
但是用在 8051 MCU 的 KeilC 不知道能不能用= =?
還是我在標頭檔 多加上Stdio.h看看好ㄌ (雖然我不知道他是在哪個標頭檔裡...)
我目的是要模擬GPS 發送一串資料 裡面一堆16進制 是ASCII碼 然後轉成字元~
因為GPS模組 一個就要1000~2000元台幣...
我用軟體模擬的 也能大概模擬RS232 串列傳輸 的解碼部分
我主要是不懂怎麼接收資料到陣列 然後擷取資料 解碼應用= ="
作者:
chiasa
時間:
2010-6-28 01:11:29
GPS訊號是有標準格式的, NMEA
網路上也有一堆解NEMA的code 可以直接抓下來用
要模擬應該是要模擬真正的GPS資料,這樣比較有說服力
作者:
a37583758
時間:
2010-6-28 12:11:48
標題:
回覆 #7 chiasa 的帖子
原來有現成的Code... 感恩 感恩~!!
自己做發射 跟接收 也很威阿.... 通通都自己搞 也很有說服力@@"
想當初 自己寫MCU 發射摩斯電碼功能 另一端要寫解碼 解成一般人能看得懂的值 也都自己搞....
歡迎光臨 SOGO論壇 (https://oursogo.com/)
Powered by OURSOGO.COM