最近需要将Arduino与电脑进行通信,虽然Arduino IDE里自带串口监视器,但是功能比较简单,而且不能对数据进行更多的处理,所以想着用C#写一个简单的串口通信程序。

在网络上找了一下,看到了一篇博客园介绍串口编程SerialPort类的文章(原文地址),试了一下确实可用,这里挑了一些常用的代码放在这里,有些做了点小修改,以后要用的时候看看。

首先要先搜索一下可用的端口号,把它添加到下拉框comboBox里,这段代码一般加在窗口启动时,也可以做一个刷新端口号的按钮。

string[] portList = System.IO.Ports.SerialPort.GetPortNames();
for (int i = 0; i < portList.Length; i++)
{
    string name = portList[i];
    comboBox1.Items.Add(name);
    comboBox1.SelectedIndex = 0;//默认显示第一项
}

接下来要设置一下串口的基本参数,其中几个参数是必须设置清楚的,如:端口号、波特率。

SerialPort mySerialPort = new SerialPort("COM3");//端口
mySerialPort.BaudRate = 9600;//波特率
mySerialPort.Parity = Parity.None;//校验位
mySerialPort.StopBits = StopBits.One;//停止位
mySerialPort.DataBits = 8;//数据位
mySerialPort.Handshake = Handshake.Non;//这句代码在我的电脑上报错,注释掉这句也不影响使用
mySerialPort.ReadTimeout = 1500;
mySerialPort.DtrEnable = true;//启用数据终端就绪信息
mySerialPort.Encoding = Encoding.UTF8;
mySerialPort.ReceivedBytesThreshold = 1;//DataReceived触发前内部输入缓冲器的字节数
mySerialPort.DataReceived += new SerialDataReceivedEvenHandler(DataReceive_Method);//这句代码在我的电脑上报错,注释掉这句也不影响使用
mySerialPort.Open();

以上的准备工作做完后,就可以开始接收和发送串口数据了。

发送串口数据的代码如下:

mySerialPort.Write(要发送的数据);

接收串口数据的代码如下,变量a储存的即为接收到的串口数据。

string a = mySerialPort.ReadExisting();

最后这句代码可以关闭串口:

mySerialPort.Close();

本文版权归一天天世界所有,转载请注明出处并添加本文链接。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

 
返回顶部
ett