}
public static void Run(string serialName ) { SerialPort sp1 = new SerialPort(); sp1.PortName = serialName;//设置串口名 sp1.BaudRate = 57600; //波特率 sp1.DataBits = 8; //数据位 sp1.StopBits = StopBits.One;//停止位 sp1.Parity = Parity.None; //校验位 sp1.DataReceived += new SerialDataReceivedEventHandler(sp1_DataReceived);//数据接收事件 sp1.DtrEnable = true;//准备就绪 sp1.RtsEnable = true; sp1.ReadTimeout = 1000;//设置数据读取超时为1秒 portcom.Add(sp1);//保存串口实例 if (sp1.IsOpen == true)//如果打开状态,则先关闭一下 { sp1.Close(); } sp1.Open(); }
private static void sp1_DataReceived(object sender SerialDataReceivedEventArgs e) { Thread.Sleep(50); lock (ojb) { SerialPort sp = sender as SerialPort;//获取当前接收数据的串口 if (!sp.IsOpen)//安全措施 { return; } int len = sp.BytesToRead;//数据的长度 byte[] receivedData = new byte[len]; sp.Read(receivedData 0 len);//读取数据 } }