c# - C#串口?我正在写我发送的关于读取com端口地址灯的代码,这是错误的
问题描述
我声明灯地址的代码:
byte[] on = { 0xe8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x04, 0x82, 0x02, 0x01};
byte[] off = { 0xe8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x04, 0x82, 0x02, 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, 0, 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 次。像我这样的学习者很难
解决方案
我又试了一次,数据还是返回了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, 0, 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 ;
}
推荐阅读
- azure-bicep - Bicep - 如何将运行时堆栈配置到 Azure 应用服务(Bicep 版本 0.4)
- r - 矩阵列对的自定义函数
- reactjs - 如何在地图加载时打开特定的弹出窗口?
- exception - 线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法加载库:/usr/lib/jvm/java-11-openjdk-
- reactjs - 打字稿擦除未定义或空的可能性
- c# - ASP.NET GridView 不显示下拉列表
- amazon-web-services - 为什么“基于选定请求标头的缓存”选项对我显示为灰色?
- java - 如何停止允许字符串或字符的功能?(安卓)
- python - 使用 Selenium 抓取始终具有相同 URL 的网站
- list - Haskell - 列表遍历