簡單的界面
波特率 校驗位 停止位 數據位 及串口號 使用ComboBox控件,並更改它們的NAME屬性:
baudrateCbx;
parityCbx;
stopBitsCbx;
dataBitsCbx;
portscbx;
檢查串口 打開串口 發送 接收 為Button控件,更改NAME屬性:
checkbtn;
openbtn;
sentbtn;
receivedbtn;
代碼部分:
using System.IO.Ports;//引用
SerialPort sp1 = new SerialPort();//實例化
檢查串口:
private void checkbtn_Click(object sender, EventArgs e)
{
string[] strCom = SerialPort.GetPortNames();
if (strCom == null)
{
MessageBox.Show("本機沒有串口!", "Error");
return;
}
foreach (string comExist in strCom)
{
portscbx.Items.Add(comExist);
portscbx.SelectedIndex = 0;
}
}
打開串口:
private void button1_Click(object sender, EventArgs e)
{
sp1.Open();
openbtn.Text = "關閉串口";
portscbx.Enabled = false;
baudrateCbx.Enabled = false;
parityCbx.Enabled = false;
stopBitsCbx.Enabled = false;
dataBitsCbx.Enabled = false;
myopen = true;
}
波特率:
private void botelucbx_SelectedIndexChanged(object sender, EventArgs e)
{
sp1.BaudRate = Convert.ToInt16(baudrateCbx.Text.Trim());
}
校驗位:
private void jiaoyancbx_SelectedIndexChanged(object sender, EventArgs e)
{
string sjjy = parityCbx.Text.Trim();
switch (sjjy)
{
case "無":
sp1.Parity = Parity.None;
break;
case "奇校驗":
sp1.Parity = Parity.Odd;
break;
case "偶校驗":
sp1.Parity = Parity.Even;
break;
default:
sp1.Parity = Parity.None;
break;
}
}
停止位:
private void tingzhicbx_SelectedIndexChanged(object sender, EventArgs e)
{
int f = (int)Convert.ToSingle(stopBitsCbx.Text.Trim()) * 10;
switch (f)
{
case 0:
sp1.StopBits = StopBits.None;
break;
case 10:
sp1.StopBits = StopBits.One;
break;
case 15:
sp1.StopBits = StopBits.OnePointFive;
break;
case 20:
sp1.StopBits = StopBits.Two;
break;
default:
sp1.StopBits = StopBits.None;
break;
}
}
數據位:
private void shujucbx_SelectedIndexChanged(object sender, EventArgs e)
{
sp1.DataBits = Convert.ToInt16(dataBitsCbx.Text.Trim());
}
串口號:
private void comboBox5_SelectedIndexChanged(object sender, EventArgs e)
{
sp1.PortName = portscbx.Text.Trim();
}
發送:
private void sentbtn_Click(object sender, EventArgs e)
{
System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding();
byte[] writeBytes = utf8.GetBytes(textBox1.Text);
sp1.Write(writeBytes, 0, writeBytes.Length);
}
接收:
private void received_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(100);
System.Text.UTF8Encoding uft8 = new System.Text.UTF8Encoding();
byte[] readByres = new byte[sp1.BytesToRead];
sp1.Read(readByres, 0, readByres.Length);
string recevid = uft8.GetString(readByres);
textBox2.Text += recevid;
}
閱讀更多 市井小民物 的文章