我将串口2脚和3脚短接,发送一个字符信息时,用事件接收数据时为空。望各位帮忙解决下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SeriPort
{
public partial class Form1 : Form
{
private delegate void DispStrMSGDelegate(string MSG);
string SendString = "1";
List<string> reStringList = new List<string>();
byte[] ReByteArray;
StringBuilder stringBuilder = new StringBuilder();
public Form1()
{
InitializeComponent();
PortInit();
}
void PortInit()
{
sp.PortName = "COM3";
sp.BaudRate = 9600;
sp.DataBits = 8;
sp.StopBits = System.IO.Ports.StopBits.One;
sp.Parity = System.IO.Ports.Parity.None;
sp.ReceivedBytesThreshold = 1;
sp.ReadTimeout = 1;
//sp.DiscardNull = true;
sp.DataReceived += Sp_DataReceived;
sp.Open();
}
private void Sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
string a;
int ByteLenth = 0;
byte[] readData;
ByteLenth = sp.ReadByte();
readData = new byte[ByteLenth];
a= sp.ReadExisting();
DispStrMSGDelegate ShowTextDe = new DispStrMSGDelegate(ShowString);
this.BeginInvoke(ShowTextDe, new object[] { a });
}
private void SendData()
{
sp.Write(SendString);
}
private void SendComd_Click(object sender, EventArgs e)
{
SendData();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
sp.Close();
}
private void ShowString(string str)
{
stringBuilder.Append(str.ToString());
RText.Text = stringBuilder.ToString();
}
}
}