serialport|C# 串口通讯(serialport类)
1.添加引用
using System.IO.Ports;
2.创建串口,选择参数
//获取串口名称数组
string[] SerialportName = SerialPort.GetPortNames();
//
//第一个参数为串口名称,比特率
SerialPort serialPort = new SerialPort(Settings.Default.strCom, 115200, Parity.None, 8, StopBits.One);
//委托
disp_delegate = new Displaydelegate(DispUI);
//设置数据接收函数
serialPort.DataReceived += new SerialDataReceivedEventHandler(Comm_DataReceived);
//数据接收函数
void Comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Byte[] InputBuf = new Byte[32];
try
{
serialPort.Read(InputBuf, 0, serialPort.BytesToRead); //读取缓冲区的数据直到“}”即0x7D为结束符
System.Threading.Thread.Sleep(50);
this.Invoke(disp_delegate, InputBuf);
}
catch (TimeoutException ex)//超时处理
{
MessageBox.Show(ex.ToString());
}
}
//接收到的数据转换,并处理
public void DispUI(byte[] InputBuf)
{
ASCIIEncoding encoding = new ASCIIEncoding();
strReadString = encoding.GetString(InputBuf);
SaveLeftProductInfo();
}
3.调试下载串口调试工具,进行串口调试。笔记本没有串口,也可以同串口调试工具添加虚拟串口。
【serialport|C# 串口通讯(serialport类)】
4.串口数据发送//参数(字节数组,从0开始的偏移量,字节数)/或者直接string 指定字符串参见系统文档。
Byte[] msg = new Byte[3];
msg[0] = 0x16;
msg[1] = 0x54;
msg[2] = 0x0D;
serialPort.Write(msg, 0, 3);
推荐阅读
- 核心
- day|day 28 设置路由表
- C语言静态动态两版本通讯录实战源码
- Android轻松实现跨进程/跨app通讯框架及其原理
- GD32VF103|GD32VF103 I2C 通讯
- MobIM仅为开发者提供即时通讯的消息通道服务
- 驱动调试小结
- USB转串口|USB转四串口芯片CH9344
- FabEdge V0.4 新特性(支持多集群通讯)
- Android通过JNI操作串口