0

シリアル ポート経由で MCU から行を読み取っています。この行は、「OK」で終わる 14 文字で構成されます。文字は int に変換されてから処理されます。問題は、値が 128 を超える場合です。128 を超える値の場合、値 (int 変換) は 63 のままです。コードは次のとおりです。

            serialPort1.DiscardInBuffer();
            serialPort1.DiscardOutBuffer();
            serialPort1.Write("d");//request line from mcu
            Thread.Sleep(100);
            string line = serialPort1.ReadLine();

            int p1_low = line[0];
            int p1_high = line[1]*256;
            int p1 = p1_low + (p1_high);
            label1.Text = "Input Sensor: " + p1_low;

p1_low は p1_high より頻繁に変化し、128 より大きい場合は 63 の値に固定されます。どこに問題があるのでしょうか?

4

3 に答える 3

0

7 データ ビットを使用するように設定されているようです。データ ビット構成値を 8 に変更して、256 個の値すべてを取得できるようにします。

参照: http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.databits.aspx

于 2013-04-26T07:47:59.940 に答える