好难过,这不是我想要的。。。。。结果
结果
好难过,没有一个人回答。。。。。回答。
好了,言归正传,我的问题如下:
如何通过serialPort 接收2个字节的数据,并在textBox上显示出来呢?
1)如何通过SerialPort组件接收 33H 34H这2组16进制数据呢?
2)如何通过textBox 控件,把接收到的33H, 34H 在这个控件上显示出来呢?
你没给分,不悬赏哪行啊。呵呵呵,用虚拟串口工具发数据。自己一调试不是就会了
protected override void OnDataReceived(object sender, SerialDataReceivedEventArgs e)
{
var serialPort = (SerialPort)sender;
if (serialPort.BytesToRead <= 0)
{
line = string.Empty;
return;
}
byte[] buffer = new byte[serialPort.BytesToRead];
int numofbyte = serialPort.Read(buffer, 0, buffer.Length);
if (numofbyte > 0)
{
line += System.Text.Encoding.ASCII.GetString(buffer);
}
/*
12 14:55:19.949 , 收到数据:[COM3] [GS 0.2]
12 14:55:19.958 , 收到数据:[COM3] [737kg
N]
12 14:55:19.966 , 收到数据:[COM3] [o. ]
12 14:55:19.977 , 收到数据:[COM3] [ 0
Tot]
12 14:55:19.985 , 收到数据:[COM3] [al 0.00]
12 14:55:19.994 , 收到数据:[COM3] [00kg
]
12 14:55:20.000 , 收到数据:[COM3] [
]
*/
//没有起始和截止符,一次通信会触发多次OnDataReceived,最后结束是只发送一个0D0A
if (buffer.Length == 2 && buffer[0] == (byte)0x0D && buffer[1] == (byte)0x0A)
{
log(string.Format("收到数据:[{0}] [{1}]", PortName, line));
if (pool != null && pool.IsOpened == true)
{
string weightData = line;
pool.Post(weightData);
line = string.Empty;
}
}
}
@数据酷软件: 谢谢你,我感动得都哭了。