• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#的串口编程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

C#的串口编程

对于串口编程,熟悉的应该觉得不困难。.NET下就更容易了,废话也没了。开始吧。
1.虚拟串口软件
由于手上没有串口硬件,所以在网上找了一个 VSPM 虚拟串口软件 ,据说是免费的。
下载地址:http://www.skycn.com/soft/30517.html 
刚开始也不知道怎么用,摸索了一下,终于成功。
安装以后工作模式选择应该为:VSPM运行在Server模式,支持Client模式设备
然后是使用设备探测器简历虚拟串口。(如果选择 建立默认的串口,软件就会自动帮你建立四个虚拟串口的)
之后就是新增虚拟串口
    串口选COM2,选择监听的IP地址:192.168.1.111 ,Client模式的设备尝试连接此端口:8099
建立之后:选择此串口,再选择菜单栏:检查此设备连接,输入刚才新增时候选择的IP地址:192.168.1.111,刚才选择的端口:8099
点击重新连接,这个窗口没有什么反映:但是主窗口的串口最右边一栏:最后一次操作:显示串口:COM2没有打开。

2. .NET串口操作
由于显示:串口:COM2没有打开,所以我们要先打开串口,才能用那个虚拟软件连接它(一开始我也没有注意到,弄了几小时)。
添加引用:Microsoft.VisualBasic

用以下遍历SerialPortNames,获得所有的串口
Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer();
            foreach (string s in pc.Ports.SerialPortNames)
            {
                this.comboBox1.Items.Add(s);
            }

然后对应显示的串口名称comName,获取操作对象。就可以对这个串口进行打开了:

System.IO.Ports.SerialPort com = new System.IO.Ports.SerialPort(comName);
com.Open();

打开后就可以用虚拟的那个软件进行连接了,用以下的发送信息,虚拟软件就可以收到了。

向串口发送数据:
 com.WriteLine(this.textBox1.Text);

当然也可以接受数据:
com.ReadLine()
这里是接收一行数据,需要在虚拟软件输入后按回车(那个管理界面输入就是了,没有回显的,打后回车就是了)。
其他操作自行参透,或参考以下关键词:The My Namespace in VB.NET ,C#中如何使用VB.NET的My关键字

当然最后就是关闭了:
com.Close();

虚拟串口软件和测试操作如图所示:

上次的C#的串口编程没有写这个,这次补充上去,就比较完整了。开始自己写写也不太会用事件来读取串口传来的信息:就想着用另外的线程来读取,用事件轻松挺多了。

直接点的代码

serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPort1_DataReceived); //对你的serialPort1 注册一个事件委托 public void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { 

  this.textBox2.Invoke(new MethodInvoker(delegate(){ textBox2.AppendText(serialPort1.ReadExisting());//这里用多行文本进行显示

  textBox2.ScrollToCaret(); }));

}

居然忘记了,不同于ui线程的委托,把Invoke加上去了,不然又出错了。

对于串口编程,熟悉的应该觉得不困难。.NET下就更容易了,废话也没了。开始吧。
1.虚拟串口软件
由于手上没有串口硬件,所以在网上找了一个 VSPM 虚拟串口软件 ,据说是免费的。
下载地址:http://www.skycn.com/soft/30517.html 
刚开始也不知道怎么用,摸索了一下,终于成功。
安装以后工作模式选择应该为:VSPM运行在Server模式,支持Client模式设备
然后是使用设备探测器简历虚拟串口。(如果选择 建立默认的串口,软件就会自动帮你建立四个虚拟串口的)
之后就是新增虚拟串口
    串口选COM2,选择监听的IP地址:192.168.1.111 ,Client模式的设备尝试连接此端口:8099
建立之后:选择此串口,再选择菜单栏:检查此设备连接,输入刚才新增时候选择的IP地址:192.168.1.111,刚才选择的端口:8099
点击重新连接,这个窗口没有什么反映:但是主窗口的串口最右边一栏:最后一次操作:显示串口:COM2没有打开。

2. .NET串口操作
由于显示:串口:COM2没有打开,所以我们要先打开串口,才能用那个虚拟软件连接它(一开始我也没有注意到,弄了几小时)。
添加引用:Microsoft.VisualBasic

用以下遍历SerialPortNames,获得所有的串口
Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer();
            foreach (string s in pc.Ports.SerialPortNames)
            {
                this.comboBox1.Items.Add(s);
            }

然后对应显示的串口名称comName,获取操作对象。就可以对这个串口进行打开了:

System.IO.Ports.SerialPort com = new System.IO.Ports.SerialPort(comName);
com.Open();

打开后就可以用虚拟的那个软件进行连接了,用以下的发送信息,虚拟软件就可以收到了。

向串口发送数据:
 com.WriteLine(this.textBox1.Text);

当然也可以接受数据:
com.ReadLine()
这里是接收一行数据,需要在虚拟软件输入后按回车(那个管理界面输入就是了,没有回显的,打后回车就是了)。
其他操作自行参透,或参考以下关键词:The My Namespace in VB.NET ,C#中如何使用VB.NET的My关键字

当然最后就是关闭了:
com.Close();

虚拟串口软件和测试操作如图所示:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#多线程与委托(转)发布时间:2022-07-10
下一篇:
C#中StreamWriter类使用总结发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap