此代碼應適用於 USB 轉串口設備,並且也可能適用於您的體重計。一些連接埠設定是透過下載/安裝 WinCT(RsCom、RsKey 和 RsWeight)找到的。然後,在 Windows 開始功能表中的 A&D WinCT 下,選擇 RsCom 或 RsKey。使用 RsCom 或 RsKey 是檢查 USB 電纜/連接是否正常工作的簡單方法。我在 USB 串行設備上使用了“RsKey”和“RsCom”,它似乎可以工作。
創建一個WinForms 項目
VS 2017:
打開Visual Studio
展開已安裝
展開Visual C#
點選Windows 桌面
選擇Windows 表單應用程式(.NET Framework)
指定項目名稱(名稱:ReadSerialPort)
點選確定
VS 2019:
開啟Visual Studio無程式碼繼續點選
檔案選擇
新建選擇
專案
C# Windows 桌面按
Windows點選
下一步指定項目名稱(名稱: ReadSerialPort)
點選
建立
注意:從現在開始,VS 2017 和VS 2019 的過程是相同的。
新增班級: SerialPortDataReceivedEventArgs注意:此類將與將從序列埠設備接收到的資料傳送給訂閱者的事件一起使用。
在 VS 選單上,選擇項目選擇
新增類別(名稱: SerialPortDataReceivedEventArgs.cs)
SerialPortDataReceivedEventArgs.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ReadSerialPort { public delegate void SerialPortDataReceivedEventHandler(object sender, SerialPortDataReceivedEventArgs e); public class SerialPortDataReceivedEventArgs : System.EventArgs { public string Data { get; private set; } = string.Empty; public SerialPortDataReceivedEventArgs(string data) { this.Data = data; } } }
新增對System.Management 的引用項目選擇
新增引用展開
程序集檢查
System.Ma nagement按
確定
項目選擇
新增類別(名稱:ComPorts.cs)
ComPorts.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ReadSerialPort { public class ComPorts { public List<ComPortInfo> Ports { get; set; } = new List<ComPortInfo>(); } public class ComPortInfo { public string Name { get; set; } public string PortName { get; set; } public ComPortInfo() { } public ComPortInfo(string name, string portName) { this.Name = name; this.PortName = portName; } } }
新增類別:HelperSerialPort
在VS 菜單上,選擇
項目
選擇
添加類
(名稱:HelperSerialPort.cs)
HelperSerialPort.cs
//如果使用.NET 5,請安裝NuGet 套件: System.IO.Ports
public enum PortBaudRate : int { Baud1200 = 1200, Baud2400 = 2400, Baud4800 = 4800, Baud9600 = 9600, Baud14400 = 14400, Baud19200 = 19200, Baud28800 = 28800, Baud38400 = 38400 }; public class HelperSerialPort : IDisposable { public delegate void SerialPortErrorReceivedEventHandler(object sender, SerialErrorReceivedEventArgs e); public event SerialPortDataReceivedEventHandler DataReceived; public event SerialPortErrorReceivedEventHandler ErrorReceived; private string _dataReceived = string.Empty; public System.IO.Ports.SerialPort Port { get; private set; } public HelperSerialPort() { //create new instance Port = new SerialPort(); } public string Connect(string comPort, PortBaudRate baudRate = PortBaudRate.Baud9600) { string portName = string.Empty; string result = string.Empty; if (String.IsNullOrEmpty(comPort)) { System.Windows.Forms.MessageBox.Show("COM port not selected.", "Error - COM Port", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return "Error: COM port not selected."; } try { if (Port == null) { //create new instance Port = new SerialPort(); } if (!Port.IsOpen) { Debug.WriteLine("opening port"); //create new instance Port = new SerialPort(comPort); //set properties
以上是如何使用WinForms和Visual Studio讀取USB串列裝置的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!