一:枚举出计算机上的串口
枚举串口有很多方法,因为做.NET,所以应该从.NET的角度来用,其余手段还有从注册表找,==。
Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer();// 需要添加Microsoft.VisualBasic 命名空间
foreach (string s in pc.Ports.SerialPortNames) //s就是每个串口的名字
{
this.richTextBox1.Text += s;
}
二: 参数设置
public SerialPort OpenSerialPort(string portName, int baudRate, Parity parity, int dataBits, StopBits stopBits)打开这个方法定义可以看到一个串口常要设置的有5个参数:
portName:串口名字,必选
baudRate:波特率(设备群发短信的可能是9600或19200等)
parity:端口的奇偶校验dataBits:端口的数据位设置(一般是8)
stopBits:端口的停止位设置(普通电脑上一般是1)
三: 连接串口
public System.IO.Ports.SerialPort com = new SerialPort();
private void Form1_Load(object sender, EventArgs e) //初始化串口列表
{
Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer();
foreach (string s in pc.Ports.SerialPortNames)
{
this.listBox1.Items.Add(s);
}
}
private void button1_Click(object sender, EventArgs e) //连接串口
{
if (listBox1.SelectedItem != null)
{
com.Close();
com.PortName = listBox1.SelectedItem.ToString();
com.Open();
label1.Text = "已连接...";
}
else
{
MessageBox.Show("没有选择合适的串口");
}
}
四:发送数据
private void button4_Click(object sender, EventArgs e)
{
if (com.IsOpen)
{
com.WriteLine(richTextBox1.Text.ToString());
}
else
{
MessageBox.Show("请先连接串口.");
}
}
五:接受数据
private void button5_Click(object sender, EventArgs e)
{
if (com.IsOpen)
{
richTextBox2.Text = com.ReadLine();
}
else
{
MessageBox.Show("请先连接串口.");
}
}