作者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