2

readline()でテキストのシリアルポート行から読み取りたい
テキストはASCIIで、ターミナルではすべてOKです(データは本当に良いです)が、readlineで読み取ると、テキストのどこかに戻りますか?例-これは定期的です:

!!!;34;248;45;215;43;226;33;235;32;240;35;250;36;240;37;246;40;263;41;272;42;261;39;270;44;256;47;241;49;8888;50;8888;38;245;46;460;48;363

これはreadline()を返します:

!!!;34;248;45;215;43;226;?33;235;32;240;35;250;36;240?;37;246;40;263;41;272;42;261?;39;270;44;256;47;241;49;888?8;50;8888;38;245;46;460;48;3?63

コードは単純です:

this.serialPort1.PortName = "COM3";    
this.serialPort1.BaudRate = 19200;                     
this.serialPort1.Parity = System.IO.Ports.Parity.Mark; 
this.serialPort1.Open();

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
    prectenyRadek=this.serialPort1.ReadLine();
    this.Invoke(new EventHandler(DisplayText));
}

private void DisplayText(object sender, EventArgs e)
{
    richTextBox1.AppendText(prectenyRadek);    
}

誰かがアイデアを持っていますか、何を、そしてなぜ私を追加するのですか?

4

2 に答える 2

1

問題はパリティでした。パリティをマークからスペースに切り替えたとき、正常に動作し始めました。(私の行の間のデータはパリティマークですが、この行には9ビットがありません)。

于 2012-07-31T04:59:20.223 に答える