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)!