日期:2014-05-17  浏览次数:20808 次

rs232 write

這是別人寫的軟體
我想像他一樣傳送資料
F1,85,85,F2 16進位
這段資料可以啟動機器
但我自己寫傳送


F18585F2
或是中間加空挌
F1 85 85 F2
中間加 ,
都沒有辦法啟動

int a, b, c, d;
            a = 241; b = 133; c = 133; d = 242;
            String A = Convert.ToString(a, 16);
            String B = Convert.ToString(b, 16);
            String C = Convert.ToString(c, 16);
            String D = Convert.ToString(d, 16);
            String E = ",";
            serialPort1.Write(A);
            serialPort1.Write(E);
            serialPort1.Write(B);
            serialPort1.Write(E);
            serialPort1.Write(C);
            serialPort1.Write(E);
            serialPort1.Write(D);
            textBox4.Text = A +E+B+E+C+E+ D;
            serialPort1.Write(textBox4.Text);

我自己寫的程式
是abcd四個變數
轉換成16進位在轉成string ABCD
STRING E 是我想試試看中間的值

textBox4是我自己看我傳甚麼資料過去

總而言之就是它軟體寫的
F1,85,85,F2為甚麼可以傳送
我自己寫的F1,85,85,F2 
F18585F2
F1 85 85 F2
為甚麼就沒效

------解决方案--------------------
自发自收?
如果按16进制发送,可以这样
byte []sendbuff={241,133,133,242};
serialPort1.Write(sendbuff,0,4);