最近在学习C#串口编程,对于串口编程是一个全新的领域,以前没有接触过,现在记录下自己学到的一些基础内容。
串口编程中需要用到一个非常重要的组件SerialPort,将此组件拖动到窗体之后,它是一个不可见组件,不会像Button按钮等直接显示在窗体上,而是显示在窗体的下面,如下图所示:
将窗体按照如上图所示的进行设计好了之后(用到了ComboBox控件,需要有一定的C#基础),就可以进行编程了。
首先把要发送的数据放在ComboBox里面,单击选择内容之后,就可以点击发送按钮进行数据发送了。
可以使用System.IO.Ports.SerialPort.GetPortNames()方法查看自己电脑上可用的端口。可以用下面的代码将所有可用的端口都显示在comboBox2控件上
comboBox2.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames());
我刚开始在这个地方走了一些弯路,因为我发现我的电脑没有可用的端口,这意味着我无法进行端口调试,后来在网上发现可以用虚拟串口来生成自己想要的串口。我用的软件的下载地址是:https://dl.pconline/download/825163.html ,大家也可以从网上找其它的软件。
软件下载安装完成之后的打开页面如下图所示:
单击Add pair即可添加一对串口。
程序运行效果如下图:
下面是程序的源代码,此程序只能打开并发送数据到指定端口,但还没有实现接收数据的功能。这里多说一下SerialPort组件,它的属性页如下图所示
它的大部分属性我们都可以使用默认值,但是有一个属性得根据自己实际情况进行修改,这个属性就是PortName,要把它的值修改为可用的端口号。
using System;
using System.Windows.Forms;
namespace PC
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string str;
for (int i = 0; i < 256; i++)
{
str = i.ToString("x").ToUpper();
if (str.Length == 1)
{
str += "0";
}
comboBox1.Items.Add("0x" + str);
}
// comboBox1.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames());
comboBox1.Text = "0x00";
}
private void button1_Click(object sender, EventArgs e)
{
string data = comboBox1.Text;
string convertdata = data.Substring(2, 2);
byte[] buffer = new byte[1];
buffer[0] = Convert.ToByte(convertdata, 16);
//serialPort1.PortName = textBox1.Text;
try
{
serialPort1.Open();
serialPort1.Write(buffer,0,1);
serialPort1.Close();
MessageBox.Show("发送成功","提示");
}
catch
{
if (serialPort1.IsOpen)
{
serialPort1.Close();
MessageBox.Show("端口打开成功");
}
MessageBox.Show("端口错误", "提示");
}
}
}
}
完整项目下载地址:https://download.csdn/download/weixin_43074474/11475776
更多推荐
C#串口编程基础入门
发布评论