这是我做的一个串口通信的总结,串口通信的方法有很多,我用的是以下这种。
组件:SerialPort
头文件:using System.IO.Ports;
使用:
serialPort1 = new SerialPort(); //建立对象
serialPort1.PortName = "COM1"; //端口号
serialPort1.BaudRate = 57600; //比特率
serialPort1.Parity = Parity.None;//奇偶校验
serialPort1.StopBits = StopBits.One;//停止位
serialPort1.ReadTimeout = 1000; //读超时,即在1000内未读到数据就引起超时异常
serialPort1.Open();//端口打开
发送(字节流):serialPort1.Write(dataSend, 0, num); //dataSend为发送数据(byte)指针,num为数据个数。
接收(字节流):常采用事件驱动(消息机制的实现)接收,即将接收处理函数的注册给系统,当串口收到数据时候,系统调用接收处理函数。
serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);//过程注册
private static void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int num = serialPort1.BytesToRead; //获取缓冲数据个数
byte[] data = new byte[num];
serialPort1.Read(data, 0, num); //读数
Encapsule(data); //数据处理
}
serialPort1.close();//关闭串口
阅读(5206) | 评论(6) | 转发(0) |