猿问

求问C# 串口接收数据的问题!

有form1和form2两个窗体,是用comm.DataReceived += comm_DataReceived;接收数据的,怎么样可以让form1和form2都可以正常收到数据。(用的都是同个串口如COM1)
注:现在的问题是,如果先打开form1,form1可以正常通讯,但是再打开form2,发送数据后,接收到的数据显示在form1上了。

慕侠2389804
浏览 280回答 2
2回答

狐的传说

comm这个对象是form1的成员吧串口是串口 窗口是窗口关联好就行

一只甜甜圈

using System.Runtime.InteropServices; /// /// (C)2003-2005 C2217 Studio 保留所有权利 /// /// 文件名称: IbmsSerialPort.cs /// 文件ID: /// 文件说明: /// 封装动态链接库IbmsSerialPort.dll的功能,提供在.NET环境中 /// 串口异步接收和发送数据的功能。 /// /// 当前版本: 1.0 /// /// 作者: 邓杨均 /// 创建日期: 2005-2-2 /// 最后修改日期: 2005-2-2 /// /// 历史修改记录: /// /// namespace Ibms.Tool.IO { /// /// 当串口接收到数据时,会产生一个事件。 /// SPRecvDataArgs就是该事件的参数,参数中的RecvData包含接收到的数据。 /// 使用方法: /// public class SPRecvDataArgs:EventArgs { /// /// 接收到的数据组成的字节数组 /// private byte[] recvData; /// /// 构造函数,需要一个包含数据的byte[]作为初始化参数来实例化 SPRecvDataArgs /// /// public SPRecvDataArgs(byte[] recvData) { if( recvData == null) { throw(new ArgumentNullException()); } this.recvData = recvData; } /// /// 返回接收到的数据内容 /// public byte[] RecvData { get { return recvData; } } } /// /// 封装动态链接库IbmsSerialPort.dll的功能,提供在.NET环境中异步 /// 串口接收和发送功能。特别实现的是异步通过信号自动接收数据的模式。 /// public class IbmsSerialPort:IDisposable { #region 平台调用声明代码 /// /// 声明IbmsSerialPort.dll的Ibms_OpenPort函数 /// /// /// /// [DllImport("IbmsSerialPort.dll")] public static extern IntPtr Ibms_OpenPort(int nPort, int nRate); /// /// 声明IbmsSerialPort.dll的Ibms_Close函数 /// [DllImport("IbmsSerialPort.dll")] publi
随时随地看视频慕课网APP
我要回答