串口通信 在。NET平台下创建C串口通信程序,。NET2。0提供了串口通信的功能,其命名空间是System。IO。Ports。这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。创建C串口通信程序之命名空间 System。IO。Ports命名空间中最重用的是SerialPort类。 创建C串口通信程序之创建SerialPort对象 通过创建SerialPort对象,我们可以在程序中控制串口通信的全过程。 串口通信属性。BaudRate;获取或设置波特率。BytesToRead;得到接收到数据的字节数。BytesToWrites;得到送往串口的字节数。DataBits;获取或设置数据位。IsOpen;获取一个值,判断串口是否打开。Pariy;获取或设置校验位。PortName;串口名称。ReadBufferSize;获取或设置读取数据的缓存大小。ReadTimeout;获取或设置读取操作未完成时发生超时之前的毫秒数默认值1。StopBits;停止位。NewLine;用于解释通过ReadLine()与WriteLine()的值。WriteBufferSize;与ReadBufferSize相对。WriteTimeout;与ReadTimeout相对 串口通信方法。Close();判断串口。Open();打开串口。Read(Byte〔〕,int32,int32);读取数据。Read(Char〔〕,int32,int32);。ReadByte();读取一个字节的数据。ReadChar();读取一个字符的数据。ReadLine();一直读取到输入缓冲区的NewLine值:返回string类型。ReadExisting();读取可用的字节。ReadTo(stringvalue);读取数据,直到读到该value时停止。。Write(string);写入数据。Write(byte〔〕,int32,int32);。Write(char〔〕,int32,int32);。WriteLine(stringvalue);将指定的value值与NewLine值一起写入 串口通信写staticSerialPortserialPortnewSerialPort();staticvoidMain(string〔〕args){serialPort。PortNameCOM1;串口名称serialPort。BaudRate9600;获取或设置波特率serialPort。ParityParity。Even;获取或设置校验位serialPort。DataBits8;获取或设置数据位默认值8serialPort。StopBitsStopBits。One;停止位serialPort。Open();serialPort。Write(A);serialPort。Close();} 串口通信读staticSerialPortserialPortnewSerialPort();staticvoidMain(string〔〕args){byte〔〕aSystem。Text。Encoding。ASCII。GetBytes();serialPort。PortNameCOM1;串口名称serialPort。BaudRate9600;获取或设置波特率serialPort。ParityParity。None;获取或设置校验位serialPort。DataBits8;获取或设置数据位默认值8serialPort。StopBitsStopBits。One;停止位serialPort。DataReceivedSerialPortDataReceived;serialPort。Open();Console。ReadKey();}privatestaticvoidSerialPortDataReceived(objectsender,SerialDataReceivedEventArgse){byte〔〕bnewbyte〔8〕;intAserialPort。Read(b,0,8);Console。Write(System。Text。Encoding。ASCII。GetString(b));} 如果没有测试串口,可以用VirtualSerialPortDriverPro模拟 下载地址:链接:https:pan。baidu。coms1NTyNGpWi7YkmaKG4qnhuAA 提取码:ukqe SerialPortserialPortnewSerialPort();privatevoidbtmSendClick(objectsender,EventArgse){serialPort。PortNameCOM1;串口名称serialPort。BaudRate9600;获取或设置波特率serialPort。ParityParity。Even;获取或设置校验位serialPort。DataBits8;获取或设置数据位默认值8serialPort。StopBitsStopBits。One;停止位serialPort。Open();serialPort。Write(txtSend。Text);serialPort。Close();}privatevoidbtnReceiveClick(objectsender,EventArgse){byte〔〕aSystem。Text。Encoding。ASCII。GetBytes();serialPort。PortNameCOM1;串口名称serialPort。BaudRate9600;获取或设置波特率serialPort。ParityParity。None;获取或设置校验位serialPort。DataBits8;获取或设置数据位默认值8serialPort。StopBitsStopBits。One;停止位serialPort。DataReceivedSerialPortDataReceived;serialPort。Open();}privatevoidSerialPortDataReceived(objectsender,SerialDataReceivedEventArgse){byte〔〕bnewbyte〔8〕;intAserialPort。Read(b,0,8);this。Invoke(newAction((){txtReceive。TextSystem。Text。Encoding。ASCII。GetString(b);}));} 串口测试工具AccessPort链接:https:pan。baidu。coms1HEvtpqBdIQsiVZcK5mnWA提取码:g4a7