我是用两个USB转串口的设备在单机PC上测试的,其中有一段很好的解决了串口返回数据不完整的问题,测试中是很稳定的,不管数据长短。在这里记录下。SerailPort设置很简单,只默认了个波特率。 private void Form1_Load(object sender, EventArgs e) { fillComBox(comboBox1); } /// <summary> /// 填充下拉列表 /// </summary> /// <param name="obj">要填充的下拉列表</param> private void fillComBox(object obj) { ComboBox cmb = obj as ComboBox; string[] ports = SerialPort.GetPortNames(); foreach (string item in ports) { cmb.Items.Add(item); } } private SerialPort clientSP;//接受串口 private int baudRate = 9600;//波特率 /// <summary> /// 创建一个串口资源 /// </summary> /// <param name="_portName">端口名称</p