C# 读COM PORT
参照了MSDN的示例:
https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
还是不工作,需要加这一行代码:
mySerialPort.DtrEnable = true;
DtrEnable属性的描述:
Gets or sets a value that enables the Data Terminal Ready DTR) signal during serial communication.
demo代码:
public class COMPortListener
{ private static ILog logger = LogManager.GetLoggertypeof COMPortListener));
#region single instance
private COMPortListener)
{
}
static COMPortListener)
{
}
private static COMPortListener _instance = new COMPortListener);
public static COMPortListener Instance { get { return _instance; } }
#endregion
public Action<string> OnDataReceived;
public void SerialPortListenAsync)
{
if OnDataReceived == null)
{
throw new InvalidOperationException"must set callback [OnDataReceived] first.");
}
Task.Run) =>
{
var mySerialPort = new SerialPortConfigurationManager.AppSettings["COM_PORT"]);
mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.RtsEnable = true;
mySerialPort.DtrEnable = true;
mySerialPort.ReadTimeout = 500;
mySerialPort.ErrorReceived += sender, args) =>
{
Console.WriteLine"######error");
Console.WriteLineargs.EventType);
};
mySerialPort.Open);
logger.Info"####COM PORT opened...");
while true)
{
try
{
string message = mySerialPort.ReadLine);
OnDataReceivedmessage);
Task.Delay500);
}
catch TimeoutException ex)
{
//do nothing
}
}
});
}
}
以上就是C# 读COM PORT的代码详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!
