Unable to get all characters from serial port
我正在为 10 位 ID 输入做一个键盘项目。每按一次按键,就会向串口发送\\'1\\'或\\'2\\'或\\'3\\'等信息。但是,在尝试使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | static void Main(string[] args) { char[] id = new char[10] ; SerialPort port = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One); port.Open(); if (port.IsOpen) { Console.WriteLine("port is now open"); } else { Console.WriteLine("port not opened correctly"); } port.Read(id, 0, 10); for (int i = 0; i < 10; i++) { Console.WriteLine(id[i]); } Console.ReadLine(); } |
首先检查您的设备是否正在发送任何数据。
您可以为此使用 RS232 终端。
Termite 是一款免费的终端软件。
如果您的硬件发送数据正确,
添加数据接收事件,
1 |
然后使用 ReadExisting() 方法捕获接收到的数据。
1 2 3 4 | private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) { Console.WriteLine(port.ReadExisting()); } |