1.先從工具箱拉SerialPort元件(要記得程式碼加入System.IO.Ports)
2.點選元件可以調整BaudRate.DataBit.ParityBit.HandShake...等
3.也可以從程式碼中新增: serialPort1 = new SerialPort(COM幾(String), 9600, Parity.None, 8, StopBits.One);
4.如果要抓取電腦現有的COM,可以使用string[] port_name = SerialPort.GetPortName();
可以用foreach() loop + comboBox的add來新增到comboBox裡面
5.讀取部分
private byte[] Port_read()
{
//---------------------------讀取部分---------------------------------//
int B2R = serialPort1.BytesToRead;//有多少
byte[] Buffer = new byte[B2R];//new多少byte 陣列
if (B2R > 0)
{
serialPort1.Read(Buffer, 0, B2R);//有多少就讀入多少(共85byte)
}
return Buffer;
//---------------------------讀取部分-End------------------------------//
}
6.寫入部分
//---------------------------寫入部分----------------------------------//
//先檢查有幾個modbus,
try
{
serialPort1.Write(byte陣列, 0, 寫多少byte);
}
catch (InvalidOperationException)
{
MessageBox.Show("關閉通訊埠");//關閉通訊埠
}
catch (IOException IOE)
{
MessageBox.Show(IOE.Message);
MessageBox.Show("IO錯誤");//IO exception
}
大致上就完成簡單的通訊程式
其餘比較有用的:
System.Text.Encoding.Default.GetBytes(String); //string轉byte[]
System.Text.Encoding.Default.GetString(byte[]);//byte[]轉String
請問第二步驟點選元件要至何處選擇呢?
回覆刪除謝謝