使用 Microsoft Communications Control 6.0 (MSComm) 控件實現串口通訊測試程式,包含參數設定、資料發送/接收、封包顯示功能。
public class Form1 : Form {
private AxMSCommLib.AxMSComm axMSComm1; // MSComm 控件
private TextBox msg; // 通訊日誌顯示
private TextBox t_send; // 發送資料輸入
// 參數設定控件:Port、BaudRate、ByteSize、StopBits、Parity...
public mycom mycom1 = new mycom(); // 通訊邏輯封裝類
public byte[] recb; // 接收緩衝區
}
private void Form1_Load(...) {
mycom1.PortNum = 1; mycom1.BaudRate = 9600;
mycom1.ByteSize = 8; mycom1.Parity = 0; mycom1.StopBits = 1;
mycom1.ReadTimeout = 1000;
msg.AppendText(OpenCom() ? "串口初始化成功……\r\n" : "串口初始化失敗!\r\n");
}
private void button1_Click(...) {
if (string.IsNullOrEmpty(t_send.Text)) return;
byte[] data = ParseHexString(t_send.Text); // 移除空格、兩字元一組轉 byte
int sent = mycom1.Write(data);
msg.AppendText($"\r\n發送資料({sent}):{FormatHex(data)}");
recb = mycom1.Read(50);
if (recb.Length > 0) msg.AppendText($"\r\n接收封包:{FormatHex(recb)}");
}
注意:發送格式為十六進位,如 02 45 66 FA,空格可有可無,但必須為偶數字元數。
「應用設定」按鈕即時更新 mycom1 屬性並重新開啟串口。
文章包含完整 Form1 類別原始碼(含設計器生成代碼),可直接複製建立專案測試。