今天,这篇文章带你学习C#中的串行通信。在日常的开发工作中,如果工作内容是CS方向,学生应该很容易接触到串口通信的业务需求。然后很容易想到C#中的SerialPort类,专门用来处理串行通信。
今天,这篇文章带你学习C#中的串行通信。在日常的开发工作中,如果工作内容是CS方向,学生应该很容易接触到串口通信的业务需求。然后很容易想到C#中的SerialPort类,专门用来处理串行通信。
了解什么是串口通讯
串行通信是指外设与计算机之间通过数据信号线、地线、控制线等逐位传输数据的一种通信方式。
这种通信方式使用的数据线较少,在远距离通信中可以节省成本,但传输速度比并行通信慢。
串口是计算机上非常通用的设备通信协议。大多数计算机包含两个基于RS-232的串行端口。
串口也是仪器仪表通用的通信协议,很多兼容GPIB的设备也有RS-232口。同时,串口通信协议也可以用来采集远程设备采集的数据。
串行接口是将从CPU接收到的并行数据字符转换成连续的串行数据流并发送出去,同时将接收到的串行数据流转换成并行数据字符并提供给CPU的设备。
通常,执行该功能的电路被称为串行接口电路。
串行逐位发送和接收字节比逐字节并行通信慢,但串口可以用一条线发送数据,用另一条线接收数据。简单,可以实现远距离通信。
这里我们笔记本的USB口不是串口,而是所谓的U口。如果我们的串口需要插入USB端口,就需要一个RS-232转U口转换器。
这里需要注意的是,一般我们的硬件工程师都会在自己的硬件设备中内置这个小型的转换设备,非常方便。
C#中的串口通讯SerialPort
自从。NET框架2.0,微软提供了系统。默认情况下为IO.Ports.SerialPort类。根据SerialPort类提供的简单操作步骤,可以轻松完成串口信息发送和接收程序,也可以在接收到特定串口的数据时发送数据。
SerialPort类的应用也很容易,按照微软官方介绍就可以使用。
配置串行端口名称、端口号、波特率等。打开/关闭串行端口以接收/发送数据。
serial port my serial port=new serial port(' com 2 ');
mySerialPort。波德拉特=9600;
mySerialPort。平价=平价。无;
mySerialPort。停止位=停止位。一;
mySerialPort。数据位数=8;
mySerialPort。握手=握手。非;
mySerialPort。data received=new serial datareceivedevenhandler(data receive _ Method);
mySerialPort。open();
mySerialPort。close();
发送数据
使用系统。IO .端口;
私有静态void SendSampleData()
{
SerialPort port=新的串行端口(
COM1 ',9600,平价。无,8,停止位。一);
港口。open();
港口。写(' Hello World ');
港口。Write(新字节[] {0x0A,0xE2,0xFF },0,3);
港口。close();
}
命名空间SerialPortExample示例
{
类串行端口程序
{
private SerialPort port=新的SerialPort('COM1 ',
9600,平价。无,8,停止位。一);
[静态线程]
静态void Main(string[] args)
{
new SerialPortProgram();
}
私有串行端口程序()
{
控制台。WriteLine('传入数据:');
港口。数据接收=新
serial datareceivedeventhandler(port _ data received);
港口。open();
申请。run();
}
private void port_DataReceived(对象发送方,SerialDataReceivedEventArgs e)
{
控制台。WriteLine(端口。read existing());
}
}
大多数情况下,串口的日常使用都是用线程来进行的。一般这些耗时且重复的任务都是在子线程中完成的,在主线程或界面中只能完成数据显示和处理。
在子线程的处理过程中,需要处理串口的打开和关闭,及时关闭串口的状态,防止无法捕捉到的意外错误。
这就是这篇关于C#中串行通信串口的文章。关于C#中串行通信SerialPort的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。