線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1532
推到 Plurk!
推到 Facebook!

請問 如何用UART表示 2byte 以上的變數??

答題得分者是:foreman
loveforme
一般會員


發表:22
回覆:39
積分:22
註冊:2009-03-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-30 23:45:17 IP:122.121.xxx.xxx 訂閱
請問 如何用UART表示 2byte 以上的變數??
這個問題困擾我很久了...
我知道有些時候可以用一些特別的辦法,
產生1byte的變數來個別代表終端機所要顯示的個位數、十位數、百位數...
但是...總是會有一些時候,所要表達的變數是要經過複雜的計算!
所得到的結果往往都是2byte以上的變數~

想請教大大們...有沒有技巧可以來顯示這類型的變數呢?
foreman
高階會員


發表:3
回覆:124
積分:190
註冊:2004-09-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-31 10:08:53 IP:122.121.xxx.xxx 未訂閱
工業界很流行一種傳輸格式叫modbus用google搜尋就知道
loveforme
一般會員


發表:22
回覆:39
積分:22
註冊:2009-03-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-31 13:55:21 IP:122.121.xxx.xxx 訂閱
謝謝大大...
我有查了一下 ... 可是還是不太懂 怎麼運用這種通訊協定...
它還是使用RS232的連接阜嗎?
需要哪些硬體嗎??
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-31 14:36:16 IP:61.229.xxx.xxx 訂閱
modbus  的硬體可以利用  RS485 or TCP/IP 來進行!


===================引 用 loveforme 文 章===================
謝謝大大...
我有查了一下 ... 可是還是不太懂 怎麼運用這種通訊協定...
它還是使用RS232的連接阜嗎?
需要哪些硬體嗎??
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-03-31 14:39:22 IP:61.229.xxx.xxx 訂閱
傳送 2 bytes 以上,你也可以自訂 Protocal, 接收端接收後再重新排列組合就行了.
概念上應該這樣可以.


===================引 用 loveforme 文 章===================
請問 如何用UART表示 2byte 以上的變數??
這個問題困擾我很久了...
我知道有些時候可以用一些特別的辦法,
產生1byte的變數來個別代表終端機所要顯示的個位數、十位數、百位數...
但是...總是會有一些時候,所要表達的變數是要經過複雜的計算!
所得到的結果往往都是2byte以上的變數~

想請教大大們...有沒有技巧可以來顯示這類型的變數呢?
loveforme
一般會員


發表:22
回覆:39
積分:22
註冊:2009-03-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-03-31 15:39:21 IP:122.121.xxx.xxx 訂閱
Protocal又是一門高深的學問...
找了相關的網頁 有看沒有懂...
KSC
一般會員


發表:4
回覆:18
積分:4
註冊:2006-09-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-04-03 20:51:14 IP:143.89.xxx.xxx 訂閱
這樣說吧
例如你傳8bit
你傳送方是不斷發送的,那接收的就不斷接收(A,B,C,D 都是8bit data)
ie: ABCD====>ABCD
但轉成16bit會有問題,因為接收的不知那個才是MSB
eg: ABCD===> 是AB,CD一組 還是 BC是一組

方法有很多,例如加一個特別的編碼在頭or 尾
eg:@AB*@CD*===>AB,CD
或分成4bit一組,用頭4bit做記號(abcd都是4bit data分拆自兩個8bit data)
eg:1a,2b3c4d1e2f3g4h======>abcd(16bit) , efgh(16bit)
這樣的方式就是potocal的設計

至於如何定編碼(即將abcd變1a,2b3c4d)和解碼(相反)就需要自己想想
loveforme
一般會員


發表:22
回覆:39
積分:22
註冊:2009-03-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-04-03 23:36:15 IP:122.121.xxx.xxx 訂閱
請問這是要從哪邊設定??
我剛剛有看到什麼IPv6是這個嗎?
請問網路上有Protocal相關的資源可以學習嗎?
KSC
一般會員


發表:4
回覆:18
積分:4
註冊:2006-09-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-04-04 03:12:32 IP:143.89.xxx.xxx 訂閱
兩邊都要,規則如何是自定的
流程係
發送方 接收方
資料==>(編碼)---硬件介面---(解碼)==>資料

IP那個會講足足7層(軟件,校驗,封包等等)

===================引 用 loveforme 文 章===================
請問這是要從哪邊設定??
我剛剛有看到什麼IPv6是這個嗎?
請問網路上有Protocal相關的資源可以學習嗎?
loveforme
一般會員


發表:22
回覆:39
積分:22
註冊:2009-03-24

發送簡訊給我
#10 引用回覆 回覆 發表時間:2009-04-04 22:42:21 IP:122.121.xxx.xxx 訂閱
KFC大大 編碼是由單晶片中我在我要傳送的位元中安插一些代號
然後再接收端再寫一個程式辨認這些代號在解碼?
因為我只知道使用超級終端機來接收訊號..
可是裡面我只會設定鮑率...所以你們說的那個解碼 不知道從哪邊下手...
KSC
一般會員


發表:4
回覆:18
積分:4
註冊:2006-09-17

發送簡訊給我
#11 引用回覆 回覆 發表時間:2009-04-06 16:00:20 IP:202.40.xxx.xxx 訂閱
http://www.asciitable.com/
例如以7,6,5,4做前4 bit,如你收到
pkZO
即是
Hex (706B5A4F)
解碼
hex(0BAF)==>dec( 2991)

當然這例子只係概念,會錯的

你也可以用string "@"分開data
如你收到
@TT@ED
就是收到TT 即bin(0101010001010100)和ED 即bin(0100010101000100)
編輯記錄
KSC 重新編輯於 2009-04-06 16:01:17, 註解 無‧
系統時間:2024-04-25 9:48:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!