C# 模拟串口发送接收
一、准备虚拟串口驱动工具
创建俩个虚拟串口,如图:

二、创建两个控制台程序
模拟串口的发送接收数据
1. 接收数据,代码如下:
//遍历串行端口名称数组
foreach (string port in System.IO.Ports.SerialPort.GetPortNames())
{
Console.WriteLine(port);
} byte[] b = new byte[];
SerialPort sp = new SerialPort("COM4"); while (true)
{
//打开新的串行端口连接
sp.Open();
//丢弃来自串行驱动程序的接受缓冲区的数据
sp.DiscardInBuffer();
//丢弃来自串行驱动程序的传输缓冲区的数据
sp.DiscardOutBuffer();
//从串口输入缓冲区读取一些字节并将那些字节写入字节数组中指定的偏移量处
sp.Read(b, , b.Length); StringBuilder sb = new StringBuilder(); for (int i = ; i < b.Length;i++ )
{
sb.Append(Convert.ToString(b[i]) + " ");
} Console.WriteLine(sb.ToString());
Console.WriteLine(b.Length.ToString());
//关闭端口连接
sp.Close();
//当前线程挂起500毫秒
System.Threading.Thread.Sleep();
}
2.发送数据,代码如下:
SerialPort sp = new SerialPort("COM2");
byte[] m = new byte[];
int i = ;
while (true)
{
//打开新的串行端口连接
sp.Open();
//丢弃来自串行驱动程序的接受缓冲区的数据
sp.DiscardInBuffer();
//丢弃来自串行驱动程序的传输缓冲区的数据
sp.DiscardOutBuffer();
m[] = Convert.ToByte("");
m[] = Convert.ToByte("");
m[] = Convert.ToByte("");
m[] = Convert.ToByte("");
m[] = Convert.ToByte("");
//使用缓冲区的数据将指定数量的字节写入串行端口
sp.Write(m, , m.Length);
//关闭端口连接
sp.Close();
Console.WriteLine(i.ToString());
i = i + ;
//当前线程挂起500毫秒
System.Threading.Thread.Sleep();
}
C# 模拟串口发送接收的更多相关文章
- c# 串口发送接收数据
/********************** 串口数据接收事件 *****************************/ private void SerialPort_DataReceived ...
- 89c52串口发送接收小示例
//串口发送 void sendChar(char *p)//调用前关中断,调用完成后关中断 { while(*p != '\0') { SBUF = *P while(!TI); TI = 0; p ...
- Rabbitmq消息队列(二) Hello World! 模拟简单发送接收
1.简介 RabbitMQ是消息代理:它接受和转发消息.你可以把它当作一个邮局:当你把你要邮寄的邮件放在信箱里时,你可以肯定Postman先生最终会把邮件送到你的收件人那里.在这个比喻中,Rabbit ...
- [15单片机] STC15F104W开发入门及模拟串口程序
STC15F104W开发入门及模拟串口程序 Saturday, 31. March 2018 09:42AM - beautifulzzzz 前言 最近找到一款51内核的SOP8封装的8脚单片机STC ...
- Winform串口编程---接收数据demo(VSPD虚拟串口)
参考地址:https://blog.csdn.net/memgxingfeixiang/article/details/52513970 https://blog.csdn.net/kevin_io ...
- STM32之模拟串口设计
一.设计用途: 公司PCB制成板降成本,选择的MCU比项目需求少一个串口,为满足制成板成本和项目对串口需求,选择模拟一路串口. 二.硬件电路: 三.设计实现: 工具&软件:STM32F030R ...
- GPIO模拟串口注意是事项
GPIO模拟串口需要注意的事项如下:(程序见我的博客第一篇) 1.由于串口是异步通信,则串口发送必须满足宽度要求. (1)假设串口的波特率是9600bps(1s传输9600个bit),则传输1bit需 ...
- C#串口通信—向串口发送数据,同步接收返回数据
最近写C#串口通信程序,系统是B/S架构.SerialPort类有一个DataReceived事件,用来接收串口返回的数据,但这种方式在C/S架构下很好用,但B/S就不好处理了.所以写了一个同步模式接 ...
- C# Socket模拟发送接收
Socket简介 通过TCP/IP与仪器或设备通讯,在C#语言中,我们通常采用Socket.本项目是一个简单的Socket建立服务监听与Socket作为客户端请求的一个示例. 项目结构 客户端项目 S ...
随机推荐
- 20155213 实验一《Java开发环境的熟悉》实验报告
20155213 实验一<Java开发环境的熟悉>实验报告 一. 实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 输入cd Code进入Code文件夹里 ...
- 20155310 《JAVA程序设计》实验二(JAVA面向对象程序设计)实验报告
20155310 <JAVA程序设计>实验二(JAVA面向对象程序设计)实验报告 实验内容 •初步掌握单元测试和TDD •理解并掌握面向对象三要素:封装.继承.多态 •初步掌握UML建模 ...
- WPF中。。DataGrid 实现时间控件和下拉框控件
DatePicker 和新的 DataGrid 行 用户与 DataGrid 中日期列的交互给我造成了很大的麻烦. 我通过将一个 Data Source 对象拖动到 WPF 窗口上,创建了一个 Dat ...
- JDK核心源码
一.核心包有哪些? Jdk的包中,除开了lang包下面的类,用得最多的应该要属于util包下面的类了, 本篇文章主要针对Jdk的util包下面的类(util目录下面的类,暂时不包括util 包下面的子 ...
- 2288: 【POJ Challenge】生日礼物
2288: [POJ Challenge]生日礼物 https://lydsy.com/JudgeOnline/problem.php?id=2288 分析: 贪心+堆+链表. 首先把序列变一下,把相 ...
- 1071: [SCOI2007]组队
1071: [SCOI2007]组队 https://lydsy.com/JudgeOnline/problem.php?id=1071 分析: dp+单调性. A*(hi–minH)+B*(si–m ...
- textbox的验证
代码如下: textBox1.KeyDown += (a, b) => { if (b.KeyCode == Keys.Enter) { textBox2.Focus(); } }; textB ...
- oss上传文件0字节
最近使用oss上传文件,不同项目中使用的版本也不同,之前的都能正常上传,最近因需要添加ObjectMetaData属性,扩展了一个方法,发现上传的文件始终是0字节的,最终跟源码发现conntentLe ...
- Qt-Qt5最新增加程序图标方式
亲爱的小伙伴吗,还记得原始的Qt4是怎么给运行程序添加图标的么,是不是先准备一个ICON文件,问了在家里建立一个rc文件,在文件里面加上 IDI_ICON1 ICON ...
- Linux 安装FastDFS<准备>(使用Mac远程访问)
阅读本文需要一定的Linux基础 一 FastDFS简介 fastdfs是用c语言编写的一款开源分布式文件系统, fastdfs为互联网量身定制, 充分考虑了冗余备份, 负载均衡, 线性扩容等机制, ...