徐州企业网站建设,做视频网站需要多少上传,开发一款软件,网站后台批量上传图片前言大家好#xff0c;我是阿辉。今天这篇文章带大家学习下C#中的串口通讯。在日常的开发工作中#xff0c;如果工作内容是CS方向的同学应该很容易接触到串口通讯方面的业务需求。那么也就很容易想到C#中SerialPort类#xff0c;它就是专门来处理串口通讯相关的。了解什么是… 前言大家好我是阿辉。今天这篇文章带大家学习下C#中的串口通讯。在日常的开发工作中如果工作内容是CS方向的同学应该很容易接触到串口通讯方面的业务需求。那么也就很容易想到C#中SerialPort类它就是专门来处理串口通讯相关的。了解什么是串口通讯串口通讯是指外设和计算机间通过数据信号线地线控制线等按位进行传输数据的一种通讯方式。这种通讯方式使用的数据线少在远距离通信中可以节约成本但其传输速度比并行通讯慢。串口是计算机上一种非常通用的设备通讯协议。大多数计算机包含两个基于RS-232的串口。串口也是仪器仪表设备通用的通讯协议很多GPIB兼容的设备也带有RS-232口同时串口通信协议也可以用于获取远程设备采集的数据。串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去同时也可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路我们称为串行接口电路。串行按位(bit)发送和接收字节尽管比按字节(byte)的并行通信慢但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。这里提一句我们笔记本的USB口它不是串口它是所谓的U口我们的串口如果需要插入到USB口那么就需要一个RS-232转U口的转换器才可以。这里需要注意下一般我们的硬件工程师都会在自己的硬件设备都内置这个小转换设备很方便。C#中的串口通讯SerialPort从.NET Framework 2.0开始微软就默认提供了System.IO.Ports.SerialPort类根据SerialPort类提供的简单操作步骤可以很容易完成串口的信息收发程序从特定的串口中接收到数据也可以进行数据的发送。关于SerialPort类的应用也很容易可以根据微软官方的介绍进行使用。配置SerialPort的名称端口号波特率等。打开/关闭串口接收/发送数据SerialPort mySerialPort new SerialPort(COM2);
mySerialPort.BaudRate 9600;
mySerialPort.ParityParity.None;
mySerialPort.StopBits StopBits.One;
mySerialPort.DataBits 8;
mySerialPort.Handshake Handshake.Non;mySerialPort.DataReceived new SerialDataReceivedEvenHandler(DataReceive_Method);mySerialPort.Open();mySerialPort.Close();发送数据using System.IO.Ports;
private static void SendSampleData()
{SerialPort port new SerialPort(COM1, 9600, Parity.None, 8, StopBits.One);port.Open();port.Write(Hello World);port.Write(new byte[] { 0x0A, 0xE2, 0xFF }, 0, 3);port.Close();
}namespace SerialPortExample
{class SerialPortProgram{ private SerialPort port new SerialPort(COM1,9600, Parity.None, 8, StopBits.One);[STAThread]static void Main(string[] args){ new SerialPortProgram();}private SerialPortProgram(){Console.WriteLine(Incoming Data:); port.DataReceived newSerialDataReceivedEventHandler(port_DataReceived); port.Open(); Application.Run();}private void port_DataReceived(object sender, SerialDataReceivedEventArgs e){ Console.WriteLine(port.ReadExisting());}}日常串口的使用多数情况是和线程进行的一般都是在子线程中做这些耗时和重复的工作在主线程或者界面只进行数据的展示处理即可。在子线程的处理过程中需要特别处理串口的打开和关闭要及时关闭串口的状态防止出现无法捕获的异常错误。寄语人生短暂我不想去追求自己看不见的我只想抓住我能看得见的。原创不易给个关注。我是阿辉感谢您的阅读如果对你有帮助麻烦点赞、转发 谢谢。往期推荐C#中的委托(Update)