我有一个应用程序,其中操作员通过其RFID进行每次操作的认证.RFID扫描仪连接到串行端口(COM1)。
我面临的问题是,我第一次尝试从串口读取数据时它正在按预期工作,第二次在病房它给我一个垃圾值,甚至我尝试设置相同但是然后它完全出乎意料。这是我的代码,请给我一个解决方案。
表单加载事件代码
_serialPort = new SerialPort("COM1");
_serialPort.BaudRate = 57600;
_serialPort.DataBits = 8;
_serialPort.Parity = Parity.Even;
_serialPort.StopBits = StopBits.Two;
_serialPort.Handshake = Handshake.None;
_serialPort.Encoding = Encoding.GetEncoding("Windows-1252");
_serialPort.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
_serialPort.Open();
port_DataReceived事件
void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
char[] SerialPortHexChar = new char[48];
_serialPort.Read(SerialPortHexChar, 0, 48);
ValidateCard(SerialPortHexChar);//Here there is no reference of _serialPort object.
}
catch { }
}
表格卸载
private void Window_Unloaded(object sender, RoutedEventArgs e)
{
try
{
if(_serialPort.IsOpen)
_serialPort.Close();
_serialPort.Dispose();
}
catch { }
}
提前致谢...