c# 串口 开发
在网上查了很多关于串口的知识。后来才发现原来c#里含有对串口开发的控件,害的我白忙活了半天。看来学习方法很重要....首先在窗体添加一个serialPort1控件。没有的去com组建里找出来。
serialPort1.PortName;// 设置串口名称如“COM1”
serialPort1.BaudRate;//设置串口波特率
serialPort1.Parity;//奇偶校验检查协议
serialPort1.ReadTimeout;//读取操作超时
serialPort1.WriteTimeout;//写入操作超时
serialPort1.Open();//打开串口
serialPort1.Close();//关闭串口
byte[] data = Encoding.Unicode.GetBytes("9600");
string str = Convert.ToBase64String(data);
serialPort1.WriteLine(str); //写入数据
//串口接收数据,本函数默认串口已经打开
public void serialReceive(SerialPort serialPort1)
{
string ss = "";
byte firstByte = Convert.ToByte(serialPort1.ReadByte());
int bytesRead = serialPort1.BytesToRead;
byte[] bytesData = new byte[bytesRead + 1];
bytesData[0] = firstByte;
for (int i = 1; i <= bytesRead; i++)
{
bytesData[i] = Convert.ToByte(serialPort1.ReadByte());
ss = ss + bytesData[i].ToString();
}
textBox2.Text = ss;
//textBox2.Text = serialPort1.ReadLine();
}
//串口发送数据,本函数默认串口已经打开
public void serialSend(SerialPort serialPort1,string sendString)
{
//byte[] sendBytes = Encoding.Unicode.GetBytes(sendString);
//string send64String = Convert.ToBase64String(sendBytes);
if (serialPort1.IsOpen)
{
byte[] data = Encoding.Unicode.GetBytes("9600");
serialPort1.Write(data, 0, data.Length);
//serialPort1.WriteLine(sendString);
}
else
{
MessageBox.Show("请先打开串口!");
}
}