1.
稳定版,不会因串口线物理延迟导致数据被两次接收,截成两段。
using System;
using System.IO.Ports;
using System.Text;
class SerialPortExample
{
static SerialPort mySerialPort = new SerialPort("COM7"); // 假设串口是COM3
static void Main()
{
mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
mySerialPort.Open();
Console.WriteLine("Press any key to continue...");
Console.WriteLine();
Console.ReadKey();
mySerialPort.Close();
}
//sb用来存储不断从串口读到的数据
static StringBuilder sb = new StringBuilder();
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();