我正在做简单的COM端口读取应用程序。下面是我的DataReceive事件代码。问题是:当我使用终端在COM端口上发送更多字符时,例如“TEST”它只读取前两个字符,而计数器仅增加2.这种情况一直发生,并且没有达到接收数据的时间长度。 任何想法都错了吗? 谢谢!
public void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
GlobalVariable.ReceivedCharacter = serialPort1.ReadChar();
GlobalVariable.Counter = GlobalVariable.Counter + 1;
}
答案 0 :(得分:0)
这种情况发生了,因为你只读了一个字符的消息。如果您需要从串口读取文本,请使用#hue {
display: block;
width: 90%;
float: left;
margin: 0 auto;
margin-top: 37px;
}
.hue {
height: 12px;
width: 100%;
}
#mixedColor {
display: block;
width: 100px;
height: 100px;
border: 1px solid black;
float: right;
}
.vert {
margin-top: 100px;
}
。简单的例子:
ReadExisting
有关详细信息,请参阅MSDN。
如果你只需要一个字符,你可以这样写:
public void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
string recievedtext = serialPort1.ReadExisting();
}