C#串行通信

串口通信定义

来源:百度百科:串口通信

串行接口是一种可以将接收来自CPU并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。

串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。

波特率

在串口通信中波特率就是每秒能传输的数据位 。 信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率 。波特率越大传输速度越快,相对的传输距离越短。

常用波特率有: 300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200

波特率7可以自定义。在数据传输和接收双方,需要统一波特率,以便正确的传输数据。

端口

可以认为是设备与外界通讯交流的出口。端口是指接口电路中的一些寄存器,这些寄存器分别用来存放数据信息、控制信息和状态信息,相应的端口分别称为数据端口、控制端口和状态端口。

端口号可以理解为我们常用的端口号:http://localhost:8001,这里面8001是端口号,对应的是一个服务。在串口通信中的一个端口号也对应一个设备服务,如:COM1

相关链接:端口是什么

代码实现

首先需要添加Nuget包:System.IO.Ports

Install-Package System.IO.Ports

向COM1端口发送HelloWorld;

1
2
3
4
5
6
7
8
9
10
11
using System.IO.Ports;
static void Main(string[] args)
{
var port = new SerialPort("COM1")//端口号
{
BaudRate=9600,//波特率
}
port.Open();//打开一个新的串口连接。
port.Write("Hello World");//向串行端口内写入数据
port.Close();//关闭串口连接
}

端口号扫描

1
System.IO.Ports.SerialPort.GetPortNames();

以上均为个人理解,如有错误还请指出