C#基础温习(5):C#串口编程
2013-04-23 07:18
323 查看
本文用来简单介绍一下C#串口编程的知识,主要以实例为内容。
凡是串口设备和计算机交互的时候都用到串口,在C#中我们如何来操作串口呢?
上图表示一个COM口,可以往外传输数据流,也可以往里传输数据流,我们如果想获得传入的数据流只需要监听往计算机的数据流即可。
下载下来安装成功后如下图所示:
然后你就点击添加端口,我上图中的COM2和COM3就是VSDM添加的,这个时候你把COM2和Com3看做是一个真实的串口,然后用两个软件连接,就相当于一个串口了,我用一个串口测试器和我们自己编写的软件进行测试:
如下图所示,我们的串口测试器已经连接到COM3上了,
运行结果如下图:
数据完全正确,发出的数据和接受的数据都一样,而且此时VSDM的界面有简单变化:
总结:本文写了一个用虚拟串口软件编写的C#串口编程实例。希望对大家有帮助。
凡是串口设备和计算机交互的时候都用到串口,在C#中我们如何来操作串口呢?
大话串口工作原理
实际串口是用来和外部设备进行交换数据的,我抽象出下面一个图形,来简单解释一下串口的原理。上图表示一个COM口,可以往外传输数据流,也可以往里传输数据流,我们如果想获得传入的数据流只需要监听往计算机的数据流即可。
虚拟串口软件
当我们没有设备时我们可以用虚拟串口软件来模拟串口操作。下面我来介绍一款软件 VSPM 虚拟串口软件。大家可以去天空软件站下载,地址请点击我。下载下来安装成功后如下图所示:
然后你就点击添加端口,我上图中的COM2和COM3就是VSDM添加的,这个时候你把COM2和Com3看做是一个真实的串口,然后用两个软件连接,就相当于一个串口了,我用一个串口测试器和我们自己编写的软件进行测试:
如下图所示,我们的串口测试器已经连接到COM3上了,
监听串口程序
直接上代码,在控制台程序中添加如下源码就可以直接运行了:using System; using System.IO.Ports; using System.Text; namespace PortDataReceived { class PortDataReceived { public static void Main() { SerialPort mySerialPort = new SerialPort("COM2"); mySerialPort.BaudRate = 9600; mySerialPort.Parity = Parity.None; mySerialPort.StopBits = StopBits.One; mySerialPort.DataBits = 8; mySerialPort.Handshake = Handshake.None; mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); mySerialPort.Open(); Console.WriteLine("Press any key to continue..."); Console.WriteLine(); Console.ReadKey(); mySerialPort.Close(); } private static void DataReceivedHandler( object sender, SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; string indata = sp.ReadExisting(); Console.WriteLine("Data Received:"); Console.Write(StrToHex(indata)); } public static string StrToHex(string mStr) //返回处理后的十六进制字符串 { return BitConverter.ToString( ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " "); } } }
运行结果如下图:
数据完全正确,发出的数据和接受的数据都一样,而且此时VSDM的界面有简单变化:
总结:本文写了一个用虚拟串口软件编写的C#串口编程实例。希望对大家有帮助。
相关文章推荐
- 黑马程序员—c#编程基础...
- 传智播客.Net培训—C#编程基础目录。
- C#编程之C#基础(七)
- 用《叩响C#之门》复习C#基础知识 第一章 初识编程
- 黑马程序员 自学01C#编程基础之基本概念
- C#编程基础 实验(4)
- C#网络编程——第一篇 基础之进程线程
- (C#)Windows Shell 外壳编程系列1 - 基础,浏览一个文件夹
- C# WinForm基础三 socket网络编程
- C#学习笔记二:并行编程基础:在 PLINQ 和 TPL 中的 Lambda 表达式
- QT开发(五十)——QT串口编程基础
- c#基础语言编程-编码
- c#网络编程学习笔记00_补上一些基础概念
- C#编程基础 实验(6) (1-3)
- C#串口编程 & C#调用dll
- c#socket编程基础
- 黑马程序员_看视频记笔记_C#编程基础02
- Linux 程序设计学习笔记----终端及串口编程基础之概念详解
- [C#基础]网络编程(一):Socket
- 黑马程序员之C#编程基础学习笔记:提示用户输入用户名,然后再提示输入密码,如果用户名是"admin"并且密码是“888888”,则提示正确,否则提示错误,如果用户名不是admin还提示用户用户名不存在