SerialPortStream是C#三方串口通讯类库之一,是一个增强的自定义串口通讯类,实现协议无关的数据帧完整接收功能,支持跨平台使用。相比于c#原生的串口通讯类更加简单易用,对收发事件的封装也更加完善,接下来附上串口通讯代码,顺便贴上组件开源地址:serialportstream
using RJCP.IO.Ports;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace UsbDemo
{
class ComConnect
{
protected SerialPortStream serialPort = null;
public ComConnect()
{
}
public void ConnectionCOM()
{
//配置串口参数
serialPort = new SerialPortStream("COM3", 115200, 8, Parity.None, StopBits.One);
serialPort.Handshake = Handshake.None;
serialPort.RtsEnable = true;
serialPort.DataReceived += OnReviceData;
serialPort.ErrorReceived += OnErrorReceived;
serialPort.PinChanged += OnPinChanged;
if (!serialPort.IsOpen)
{
//打开串口
serialPort.Open();
var data = Encoding.UTF8.GetBytes("test");
//同步发送
serialPort.Write(data, 0, data.Length);
//异步发送
serialPort.WriteAsync(data, 0, data.Length);
//关闭串口
serialPort.Close();
}
}
/// <summary>
/// 数据接收事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnReviceData(object sender, SerialDataReceivedEventArgs e)
{
}
/// <summary>
/// 针脚改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnPinChanged(object sender, SerialPinChangedEventArgs e)
{
}
/// <summary>
/// 异常信息事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnErrorReceived(object sender, SerialErrorReceivedEventArgs e)
{
}
}
}