创建一个中断以等待数据通过串行端口到达。问题是当许多帧到达时,中断当然不会完成为它们准备的代码的执行。我怎样才能解决这个问题?要么阻止以后的中断,直到第一个结束以其他方式接收帧。
public class port{
static int cont=0;
public port()
{
entryPort.BaudRate = 9600;
entryPort.DataBits = 8;
entryPort.Parity = Parity.None;
entryPort.StopBits = StopBits.One;
entryPort.Handshake = Handshake.None;
entryPort.PortName = "COM3";
entryPort.DataReceived += new SerialDataReceivedEventHandler(dataIn);
puertoEntrada.Open();
}
private static void llegaronDatos(object
sender,SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
console.write(cont);
cont++;
console.write("data:");
Console.Write(indata);
}
}
输入框:“ $$$”四次
输出: $$$ $$$ $$$ $$$
如您所见,某些说明已被跳过,例如打印“数据:”