使用C#做RS232序列埠控制。
加入IO的namespace
using System.IO.Ports;
使用System.IO.Ports.SerialPort類別
private SerialPort port;
...
port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
加入接收資料事件及事件處理函式
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
...
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//讀入字串
string data = port.ReadExisting();
Console.WriteLine("Receive: " + data);
/*
//讀入位元組
int bytes = port.BytesToRead;
byte[] comBuffer = new byte[bytes];
port.Read(comBuffer, 0, bytes);
Console.WriteLine(comBuffer);
*/
}
送出資料(打開->寫出)
port.Open();
//方法一
port.Write("#XXCH010001\r");
//方法二
port.Write(new byte[] { 0x02, 0x00, 0x00, 0x00, 0x00, 0x02 }, 0, 6);
關閉port
port.Close();
0,6的意思是?
回覆刪除作者已經移除這則留言。
刪除https://docs.microsoft.com/zh-tw/dotnet/api/system.io.ports.serialport.write?view=dotnet-plat-ext-5.0
刪除offset(偏移量) => 0
資料長度 => 6
簡單講就是資料源的index從0~6
可以看整個程式嗎,謝謝不分段
回覆刪除