C# 簡單串口通信232

簡單的界面

C# 簡單串口通信232

波特率 校驗位 停止位 數據位 及串口號 使用ComboBox控件,並更改它們的NAME屬性:

baudrateCbx;

parityCbx;

stopBitsCbx;

dataBitsCbx;

portscbx;

檢查串口 打開串口 發送 接收 為Button控件,更改NAME屬性:

checkbtn;

openbtn;

sentbtn;

receivedbtn;

C# 簡單串口通信232

C# 簡單串口通信232

代碼部分:

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;

}


分享到:


相關文章: