usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.IO.Ports;
namespaceConsoleApplication3
...{
classSerialPortTest
...{
publicstringMessageStr="";
publicboolIsMessageFlag=false;
SerialPortport1;

/**////<summary>
///function:initialserialport
///</summary>
///<paramname="PortName">portnumber</param>
///<paramname="BaudRate">portspeed</param>
publicvoidInitCOM(stringPortName,intBaudRate)
...{
port1=newSerialPort(PortName,BaudRate);
port1.Handshake=Handshake.RequestToSend;
port1.DataReceived+=newSerialDataReceivedEventHandler(port1_DataReceived);
}
/**////<summary>
///function:dealwiththedatareceive
///</summary>
///<paramname="sender"></param>
///<paramname="e"></param>
privatevoidport1_DataReceived(objectsender,SerialDataReceivedEventArgse)
...{
StringBuildercurrentline=newStringBuilder();
if(!IsMessageFlag)
...{
while(port1.BytesToRead>0)
...{
charch=(char)port1.ReadByte();
currentline.Append(ch);
}
MessageStr=currentline.ToString();
IsMessageFlag=true;
currentline=newStringBuilder();
}
//thrownewException("Themethodoroperationisnotimplemented.");
}
/**////<summary>
///function:sendtheinstruction
///</summary>
///<paramname="CommandString"></param>
publicvoidSendCommand(stringCommandString)
...{
byte[]WriteBuffer=Encoding.ASCII.GetBytes(CommandString);
port1.Write(WriteBuffer,0,WriteBuffer.Length);
}
/**////<summary>
///function:opentheclosedport
///</summary>
publicvoidOpenPort()
...{
port1.Open();
if(port1.IsOpen)
...{
Console.WriteLine("theportisopened!");
}
else
...{
Console.WriteLine("failuretoopentheport!");
}
}
/**////<summary>
///function:closetheopenedport
///</summary>
publicvoidClosePort()
...{
port1.Close();
if(port1.IsOpen)
...{
Console.WriteLine("theportisalreadyclosed!");
}
}
}
}
本文介绍了一个简单的串口通信实现案例,包括串口初始化、发送指令、接收数据等关键步骤,并提供了完整的C#代码示例。
4708

被折叠的 条评论
为什么被折叠?



