作者mlmydarling (流浪漢)
看板Electronics
標題[問題] 接收485的資料,如何再計算後傳出。
時間Sun Mar 1 19:33:16 2009
使用c語言
接收485的資料,一個byte由 00~FF
但接收後會經過計算 如接收 FF 會先*9 = 8F7
然後把 08 和 F7 分成2BYTE送出
如接收時 03 02 FF
抓到FF資料*9 = 8F7
之後再送出 04 02 08 F7
不知道如何把收到的資料做計算後再自動分成兩BYTE資料送出
============================================================
所以 RBYTE3*0xFF= 0x8F7;
SBYTE3= (RBYTE3*0xFF)>>8;
SBYTE4= (RBYTE3*0xFF)&0xFF;
SBYTE1=0x04;
SBYTE2=0x02;
不知道是否這樣呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.180.101
1F:推 beagle:那為什麼 03 和 02 不用乘 9 ? 03/01 19:43
2F:→ mlmydarling:因為前兩碼不是資料。真的資料是在第三筆 03/01 20:06
3F:→ mlmydarling:也就是我發送端只用一BYTE。來控制2BYTE寬度 03/01 20:07
4F:推 TroyLee:沒什麼難度吧...乘好之後 > 0xFF 就先傳(Data&0xFF00)>>8 03/01 20:25
5F:→ TroyLee:直接Data>>8就可以了..再傳Data&0xFF 03/01 20:25
※ 編輯: mlmydarling 來自: 118.166.180.101 (03/01 20:42)
6F:推 TroyLee:類似吧...不過你寫的好像不是C語言喔... 03/01 21:20
7F:→ mlmydarling:@@ 痾!!不是C喔~~~我都這樣寫的~~~ 03/01 22:16
8F:→ mlmydarling:看樣子我C還是得從基礎買書開始學了!! 03/01 22:16
9F:→ beagle:後面寫 0xFF 是對的, 為什麼前面寫成 FF ? 03/01 22:35
10F:→ mlmydarling:呵呵..一時心急打太快...我立即修正 03/01 23:58
※ 編輯: mlmydarling 來自: 118.166.180.101 (03/01 23:58)
11F:→ ksmrt0123:RBYTE3應該要乘9, 不是0xFF, SBYTE3跟4 不需乘0xFF 03/02 01:49