C#串口通信从入门到精通(26)——多个串口多个线程发送数据和接收数据

news/2025/2/26 6:40:22

前言

我们在开发串口程序的过程中有时候会遇到多个串口,并且多个串口也需要在多个线程进行操作,本文就来讲解如何实现多个串口在多线程下的安全发送与接收。

1、操作界面与测试过程

我们首先使用虚拟串口助手虚拟COM1、COM2这一对串口;COM3、COM4这一对串口,然后使用代码操作COM1,然后打开一个串口助手操作COM2,当我们使用COM1发送“111”以后,使用串口助手回复“222”,这时可以看到我们的软件接收到COM2发送过来的“222”;使用Com3发送“333”以后,使用串口助手操作COM4,COM4返回“444”,如下图:
在这里插入图片描述
上述代码就是实现了对COM1、COM3的操作

2、多串口多线程类的定义

我们定义一个类,该类定义好以后,对于不同的串口,new这个类的对象即可,然后对该类进行打开串口、发送数据、接收数据等操作,对于不同的串口,只是打开串口的时候传入不同的串口名称即可

  class MultiSerialPort
    {
   


        public 

http://www.niftyadmin.cn/n/480973.html

相关文章

OpenCV学习笔记 | ROI区域选择提取 | Python

摘要 ROI区域是指图像中我们感兴趣的特定区域,OpenCV提供了一些函数来选择和提取ROI区域,我们可以使用OpenCV的鼠标事件绑定函数,然后通过鼠标操作在图像上绘制一个矩形框,该矩形框即为ROI区域。本文将介绍代码的实现以及四个主要…

[笔记] Win11各种常见问题记录

文章目录 前言常见问题1. 文件管理器经常卡顿 右键经常不响应 过段时间就都不响应了 前言 常见问题 1. 文件管理器经常卡顿 右键经常不响应 过段时间就都不响应了 解决方法1 关闭网络映射磁盘 # x为盘符 net use x: /del 关于博主 wx/qq:binary-monster/111…

如何克服自动化测试中的壁垒和问题?

随着自动化测试技术的快速发展和普及,自动化测试已经成为各个行业广泛应用的重要测试手段。然而,自动化测试中仍然存在壁垒和问题,这些问题可能对测试效果产生影响,甚至会影响整个项目的进程。在本文中,我们将探讨如何…

Java 学习资源

框架系列 SpringBoot 学习资源 Spring Boot 教程汇总(http://www.springboot.wiki/) SpringCloud 学习资源 Spring Cloud 微服务教程汇总(http://www.springcloud.wiki/#home)

按unicode值比较数组中的字符串元素numpy.compare_chararrays()方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 对比两个数组中对应位置 的元素的unicode值大小 numpy.compare_chararrays() [太阳]选择题 关于以下代码的输出结果是? import numpy as np a np.array(["a","B","…

【C#】代码解析--打印数据集

系列文章 【C#】编号生成器(定义单号规则、固定字符、流水号、业务单号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787 【C#】日期范围生成器(开始日期、结束日期) 本文链接:h…

【程序员面试金典】面试题 17.18. 最短超串

【程序员面试金典】面试题 17.18. 最短超串 题目描述解题思路 题目描述 描述:假设你有两个数组,一个长一个短,短的元素均不相同。找到长数组中包含短数组所有的元素的最短子数组,其出现顺序无关紧要。 返回最短子数组的左端点和…

Transformer时间序列:PatchTST引领时间序列预测进

Transformer时间序列:PatchTST引领时间序列预测进 引言为什么transformer框架可以应用到时间序列呢统计学模型深度学习模型 PatchTSTPatchTST模型架构原理。通道独立性Patchingpatching的优点Transformer编码器 利用表示学习改进PatchTST使用PatchTST模型进行预测初…