大佬教程收集整理的这篇文章主要介绍了C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我声明灯地址的代码:
byte[] on = { 0xe8,0xff,0x00,0x02,0x04,0x82,0x01};
byte[] off = { 0xe8,0x00 };
直到迭代两次,时间1是正确的地址,第二是不同的数字
private voID Data_Received(object sender,serialDataReceivedEventArgs E)
{
int i;
Thread.Sleep(10);
rec_lend = serialPort1.bytesToRead;
rxbyte = new byte[rec_lend];
serialPort1.Read(rxbyte,rec_lend);
for (i = 0; i < rxbyte.Length; i++)
{
rsPDAta.Enqueue(rxbyte[i]);
messageBox.Show(i.ToString() + rsPDAta.ToArray());
}
this.Invoke((MethodInvoker)delegate
{
req_msg();
});
}
public voID req_msg()
{
int i;
if (rsPDAta.Count != 0)
{
byte[] messageReceive = new byte[rsPDAta.Count];
int ghdata = rsPDAta.Count;
rec_msg = new byte[rsPDAta.Count];
for (i = 0; i < 11; i++)
{
rec_msg[i] = (bytE)(rsPDAta.Dequeue());
dataOUT += Convert.ToString(rec_msg[i],16);
}
if (rsPDAta.Count != 0)
{
req_msg();
}
}
tBoxDataIN.Text = dataOUT;
}
我也不知道我卡在哪里,导致它像这样重复了 2 次。像我这样的学习者太难了
试试这个,希望这段代码能帮到你:
private void SPDAtaReceived(object sender,serialDataReceivedEventArgs E)
{
serialPort serialPort = (serialPort)sender;
String portName = serialPort.PortName;
String str = serialPort.ReadExisTing();
try
{
byte[] numArray = new byte[serialPort.bytesToRead];
if (serialPort.Read(numArray,numArray.Length) <= 0)
Console.WriteLine("No have data!");
serialPort.Write(numArray,numArray.Length);
}
catch (Exception eX)
{
txtLog.AppendText("\r\n" + "SPDAtaReceived fail \n" + ex.ToString());// += ;
}
}
,
我又试了一次,数据还是返回了2次,是不是很长所以需要2次才能全部读完? 我的代码 C#:
private void serialPort1_DataReceived_1(object sender,serialDataReceivedEventArgs E)
{
int i;
Thread.Sleep(10);
// Read available bytes and check for presence of a end byte
byte[] buffer = new byte[serialPort1.bytesToRead];
serialPort1.Read(buffer,buffer.Length);
receivedData.AddRange(buffer);
for (i = 0; i < buffer.Length; i++)
{
rsPDAta.Enqueue(buffer[i]);
}
this.Invoke((MethodInvoker)delegate
{
message();
});
}
public void message()
{
int i;
byte[] messageReceive = new byte[rsPDAta.Count];
byte[] rec_message = new byte[rsPDAta.Count];
for (i = 0; i < rsPDAta.Count; i++)
{
rec_message[i] =(bytE) rsPDAta.Dequeue();
tBoxDataIN.Text += rec_message[i];
}
tBoxDataIN.Text += Environment.NewLine ;
}
以上是大佬教程为你收集整理的C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的全部内容,希望文章能够帮你解决C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。