シリアルポートからデータを読み取ろうとしています。私はUSBアダプタを使用するとき、私はsendtではなく迷惑メールを受け取ります。USBポートから読み取ると奇妙なデータ
私は期待して何
0001 C0 23:33:41.9114 00
0001 C1 23:34:17.8207 00
0001 RT 00:00:35.90 00
n0002
0002 C0 23:34:32.8372 00
0002 C1 23:42:36.2617 00
0002 RT 00:08:03.42 00
n0003
0003 C0 23:42:44.3947 00
USBシリアルポートを介して接続されたとき、私は($ 00は0x3F ...)何を得る
003F003F783F003F003F003F003F003F
003F003F003F003F003F3F3F3F003F00
3F3F78003F003F003F003F003F780000
3F003F783F003F003F003F003F003F00
3F003F003F003F003F3F3F3F003F003F
3F78003F003F00
はまた、私が使用している場合(通常のSERIALPORTで取得)それを接続するパテは、USBシリアルポート経由でも正しいtexteを表示します。
ここで間違いがありますか?どのようにしてパテは壊れたデータを「修正」しますか?
編集:
SerialPort p = new SerialPort(Conf.Value("ExternalClockPort"), int.Parse(Conf.Value("ExternalClockBaud")), Parity.None, 8, StopBits.Two);
p.Handshake = Handshake.RequestToSend;
p.Open();
byte[] buffer = new byte[512];
String command = "";
while (!Done)
{
int cnt = p.Read(buffer, 0, buffer.Length);
File.AppendAllText(this.appDataDirectory + "ExternalClock.log", ASCIIEncoding.ASCII.GetString(buffer, 0, cnt));
command = ExternalClock.parseCommand(command + ASCIIEncoding.ASCII.GetString(buffer, 0, cnt));
}
シリアルポートからの読み取りに使用するコードを示してください。いくつかのエンコーディングセットでReadLineを使用していますか? –
リーディングコードが追加されました。私はASCIIエンコーディングを使用します。問題は、異なるシリアルポートで異なる動作をすることです。 – klundby
あなたが間違ったボーレート/シリアルポート設定を使用しているようです。 – Jan