C#以符号形式接收数据的串行端口

C#以符号形式接收数据的串行端口,c#,serial-port,communication,C#,Serial Port,Communication,我有一个arduino RFID在这里输入代码读卡器,它通过serail端口向我发送数据,但我 不要接收格式正确的数据,如0001685839 02547439 请帮忙,我的代码是这样的 using System; using System.IO.Ports; class PortDataReceived { public static void Main() { SerialPort mySerialPort = new SerialPort("COM3");

我有一个arduino RFID
在这里输入代码
读卡器,它通过serail端口向我发送数据,但我

不要接收格式正确的数据,如0001685839 02547439

请帮忙,我的代码是这样的

using System;
using System.IO.Ports;

class PortDataReceived
{
    public static void Main()
    {
        SerialPort mySerialPort = new SerialPort("COM3");

        mySerialPort.BaudRate = 9600;
        mySerialPort.Parity = Parity.None;
        mySerialPort.StopBits = StopBits.One;
        mySerialPort.DataBits = 8;
        mySerialPort.Handshake = Handshake.None;
        mySerialPort.RtsEnable = true;

        mySerialPort.DataReceived += new     SerialDataReceivedEventHandler(DataReceivedHandler);

        mySerialPort.Open();
        Console.WriteLine();
        Console.ReadKey();
        mySerialPort.Close();
    }

    private static void DataReceivedHandler(object sender,SerialDataReceivedEventArgs e)
    {
        SerialPort sp = (SerialPort)sender;
        string indata = sp.ReadExisting();
        Console.Write(indata);
    }
}
你收到了什么数据? 有一种com端口缓冲区的概念。在数据不适合端口缓冲区的情况下,可以结束两个读取事件

您可以尝试以下方法:

int-bytesToRead=sp.bytesToRead;
var bytes=新字节[bytesToRead];
sp.Read(字节,0,bytesToRead);
var indata=Encoding.ASCII.GetString(字节)
丢弃缓冲液;
sp.discardbuffer();

我收到的数据是符号和英文单词,而不是数字。您收到了什么吗?您尝试过RtsEnable=false吗?尝试过,但仍接收符号和英文字符