一般的串口通讯类或者nuget包提供的串口通讯功能,发送和接收数据是分开的。当需要与仪器或者仪表交互大量指令和数据时,分开收发十分不方便,也不好维护。
所以将发送和等待接收返回的数据写成一个函数来操作完成就十分的方便,这里提供一个非常好用的C# 串口通讯工具类,其内部将发送指令和接收数据并返回出来的功能,根据发送和接收数据的形式封装成了多个函数。
一、使用示例:
给仪器发送字符串形式的电压数据获取指令,仪器返回字符串形式的数据并以“\r\n”为结束符。可以调用串口通讯工具类中重载的SendData函数
只需要设定
sendStr=“Read V?\r\n”;//发送的读取电压值的仪器指令
new string recvStr;//new出来用于接收仪器返回数据的字符串变量
endMark=“\r\n";//指定仪器返回数据的结束符
waitTime=”1000“;//指定等待时间,若长时间未收到正常反馈,则结束等待并反馈错误信息
若仪器正确返回数据,则ComResult值为OK,此时可以对仪器返回的数据recvStr进行处理
二、通讯类目前已经封装好的几种函数(部分)
1、以Byte[]数组形式,发送数据并接收返回的数据 (指定数据长度)
2、以Byte[]数组形式,发送数据并接收返回的数据 (指定结束符)
3、以string字符串形式,发送数据并接收返回的数据 (指定数据长度)
4、以string字符串形式,发送数据并接收返回的数据 (指定结束符)
串口通讯工具类的源cs类文件下载链接:夸克网盘分享
三、使用步骤
1、引用SerialCom类的命名空间
using Common;
2、new 一个SerialCom类对象
在需要使用的类中,new一个SerialCom作为全局变量,方便调用
public SerialCom serialCom = new SerialCom();
3、new一个SerialParam对象(该类包含在SerialCom类中),用于设定串口参数
public Common.SerialParam serialParam = new Common.SerialParam
{
BaudRate = 38400,
DataBits = 8,
StopBits = System.IO.Ports.StopBits.One,
Parity = System.IO.Ports.Parity.None
};
可以在初始化SerialParam时设定串口参数,也可以在其他可调用serialParam实例的地方设定。
4、打开串口
bool rst = serialCom.Open(serialParam);
5、在串口成功连通之后,就可以调用上面列出的常用发送函数
给入指令,判断函数运行结果,处理接收到的正常数据。
下载源代码
串口通讯工具类的源cs类文件下载链接:夸克网盘分享