嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元微信扫码支付:1 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
private void initSerialPort()
{
try
{
// serialPort = new SerialPort(ConfigurationManager.AppSettings["ComPort"].ToString());
serialPort = new SerialPort("COM1");
serialPort.BaudRate = 9600;
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;
serialPort.DataBits = 8;
serialPort.Handshake = Handshake.None;
//serialPort.ReadTimeout = 3000;
serialPort.ReceivedBytesThreshold = 1;
serialPort.DataReceived = new SerialDataReceivedEventHandler(DataReceived);
if (serialPort.IsOpen)
{
serialPort.Close();
}
serialPort.Open();
//isInitPort = true;
}
catch (Exception ex)
{
MessageBox.Show("加载接口实例失败!");
}
}
/// <summary>
/// 监听串口数据线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Thread.Sleep(500);//线程休眠500毫秒,方便接收串口的全部数据
try
{
if (serialPort.IsOpen)
{
byte[] readBuffer = new byte[serialPort.ReadBufferSize 1];
try
{
int count = serialPort.Read(readBuffer, 0, serialPort.ReadBufferSize); //读取串口数据(监听)
String SerialIn = System.Text.Encoding.ASCII.GetString(readBuffer, 0, count);//将字节数组解码为字符串
if (count != 0)
{
//这里强调一下,线程里不可以直接对UI进行赋值,只能使用委托操作控件
this.BeginInvoke(new System.Threading.ThreadStart(delegate ()
{
richTextBox1.Text = "秤参数: " SerialIn;
}));
}
}
catch (TimeoutException) { }
}
else
{
TimeSpan waitTime = new TimeSpan(0, 0, 0, 0, 50);
Thread.Sleep(waitTime);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}