我写了一个串口读写程序,用了serialport类,ReceivedBytesThreshold=5,当接收到5个byte时就会触发事件,开始读缓存里的内容。现在出现一个诡异的问题,就是假设我给串口发5个byte,内容为11 22 33 44 55
串口会显示:接收到5个字节
R:11 22 33 44 55
接收到0个字节
R:相关代码如下,麻烦大家帮我看看问题出在哪里了呢?谢谢!
private void Receive2()
{
serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)//收ACK
{
int bytes = serialPort1.BytesToRead;// 获取字节长度
UpdateUI("接收到"+bytes.ToString());//该函数把括号中的字符串添加到listbox中
mybuffer = new byte[bytes]; // 创建字节数组
serialPort1.Read(mybuffer, 0, bytes); // 读取缓冲区的数据到数组
UpdateUI("R:"+dis_package(mybuffer));
}
串口会显示:接收到5个字节
R:11 22 33 44 55
接收到0个字节
R:相关代码如下,麻烦大家帮我看看问题出在哪里了呢?谢谢!
private void Receive2()
{
serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)//收ACK
{
int bytes = serialPort1.BytesToRead;// 获取字节长度
UpdateUI("接收到"+bytes.ToString());//该函数把括号中的字符串添加到listbox中
mybuffer = new byte[bytes]; // 创建字节数组
serialPort1.Read(mybuffer, 0, bytes); // 读取缓冲区的数据到数组
UpdateUI("R:"+dis_package(mybuffer));
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货