- 浏览: 281812 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
weituotian:
这篇文章真的很好阿
C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值 -
clshuai:
博主,你好,看了你的这篇文章,让我很敬佩。可谓内容之全,涵盖范 ...
C#操作Excel -
devilhand:
DataGridView刷新数据的问题 -
devilhand:
DataGridView刷新数据的问题 -
devilhand:
DataGridView刷新数据的问题
C#串口编程1.虚拟串口软件
由于手上没有串口硬件,所以在网上找了一个 VSPM 虚拟串口软件 ,据说是免费的。
下载地址:http://www.skycn.com/soft/30517.html
刚开始也不知道怎么用,摸索了一下,终于成功。
安装以后工作模式选择应该为:VSPM运行在Server模式,支持Client模式设备
然后是使用设备探测器简历虚拟串口。(如果选择 建立默认的串口,软件就会自动帮你建立四个虚拟串口的)之后就是新增虚拟串口
串口选COM2,选择监听的IP地址:本机IP,Client模式的设备尝试连接此端口:8099
建立之后:选择此串口,再选择菜单栏:检查此设备连接,输入刚才新增时候选择的IP地址:本机IP,刚才选择的端口:8099
点击重新连接,这个窗口没有什么反映:但是主窗口的串口最右边一栏:最后一次操作:显示客户端已经建立TCP/IP连接
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; using Microsoft.VisualBasic; namespace WindowsApplication4 { public partial class Form2 : Form { private SerialPort com = null; public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Byte[] bytes=MyEncode(textBox1.Text.Trim()); com.Write(bytes, 0, bytes.Length); } private void Form2_Load(object sender, EventArgs e) { Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer(); foreach (string s in pc.Ports.SerialPortNames) { this.comboBox1.Items.Add(s); } } private void button2_Click(object sender, EventArgs e) { Byte[] bytes = new Byte[com.ReadBufferSize]; com.Read(bytes, 0, bytes.Length); listBox1.Items.Add(MyDecode(bytes)); listBox1.SelectedIndex = listBox1.Items.Count - 1; MessageBox.Show(MyDecode(bytes)); } private void button3_Click(object sender, EventArgs e) { if (com == null) { com = new SerialPort(comboBox1.Text); } if (!com.IsOpen) { com.Open(); button3.Enabled = false; button4.Enabled = true; } } private void button4_Click(object sender, EventArgs e) { if (com != null && com.IsOpen) { com.Close(); button3.Enabled = true; button4.Enabled = false; } } /// <summary> /// 编码 /// </summary> private Byte[] MyEncode(string text) { Encoder ed = Encoding.Default.GetEncoder(); char[] chars = text.ToCharArray(); Byte[] bytes = new Byte[ed.GetByteCount(chars, 0, chars.Length, true)]; ed.GetBytes(chars, 0, chars.Length, bytes, 0, true); //return Convert.ToBase64String(bytes); return bytes; } /// <summary> /// 解码 /// </summary> /// <param name="bytes"></param> /// <returns></returns> private string MyDecode(Byte[] bytes) { Decoder dd = Encoding.Default.GetDecoder(); char[] chars = new char[dd.GetCharCount(bytes, 0, bytes.Length, true)]; dd.GetChars(bytes, 0, bytes.Length, chars, 0, true); StringBuilder result = new StringBuilder(1000); foreach (char c in chars) { result.Append(c); } return result.ToString(); } private void Form2_FormClosing(object sender, FormClosingEventArgs e) { button4.PerformClick(); } } }
串口向设备发送信息
串口接收设备发送的信息
发表评论
-
C#获取本地IP
2012-06-06 14:39 935/// <summary> ... -
只能启动单个程序
2012-05-04 12:51 806bool ret; System. ... -
.Net控件命名规范
2012-04-25 14:45 803<!--------------A----------- ... -
DataGridView绑定数据时,时间格式显示不全的问题
2012-04-25 13:54 1027DataGridView绑定数据时,时间格式显示问题 今天做 ... -
把Dgv的颜色改回默认颜色
2012-04-25 13:35 952dgv.Rows[i].DefaultCellStyle.Ba ... -
Winform 去掉 最大化 最小化 关闭按钮 保留左侧图片
2012-04-23 17:02 1184using System; using System.Col ... -
禁用窗体的关闭按钮
2012-04-23 16:58 872[DllImport("USER32 ... -
c#中用声音提示报警
2012-03-14 09:51 1761using System; using System.Ru ... -
WinForm 查看控制台输出
2012-02-15 10:39 1303/// <summary> ... -
C# 启动外部程序的几种方法
2011-10-17 19:15 7471. 启动外部程序,不等待其退出。2. 启动外部程序,等待其退 ... -
解决VS2005不能调试线程问题
2011-08-12 12:33 2396昨天突然VS2005不能调试线程,网上找了很多方法都不行,后来 ... -
通过域名获取IP的两种方法
2011-07-16 15:09 1848//每次都去Dns服务器上 ... -
执行命名行命令
2011-07-16 14:41 704/// <summary> / ... -
获取指定目录下所有文件
2011-07-01 20:48 1475命名空间 using System.Collections; ... -
C#控制Excel的打印格式
2011-06-22 20:54 3722Excel.Application appExcel=n ... -
C#操作Excel
2011-06-22 14:28 1617using System; using System. ... -
C# 操作Excel的类
2011-06-22 14:20 1362using System; using Micro ... -
DataGridView刷新数据的问题
2011-06-21 11:39 42291、操作:UI线程修改数据后重新绑定dgv,一个后台线程定时刷 ... -
VS2005水晶报表注册码
2011-06-18 13:40 7216707437608 -
按Enter键时,焦点移到下一个控件
2011-06-18 10:06 1237#region 按Enter键时,焦点移 ...
相关推荐
《Qt串口编程与Modbus通信实践》 在IT领域,Qt是一个强大的C++图形用户界面应用程序开发框架,被广泛应用于桌面应用、嵌入式系统甚至移动设备的开发。而串口编程是设备间通信的重要手段,特别是在工业自动化、...
标题中的“容易自制的串口编程器(带软件PonyProg)”指的是一个适用于初学者的串行接口编程器项目,它集成了PonyProg软件,用于编程不同的EEPROM和微控制器。这个编程器设计简单,便于DIY,使得用户能够方便地对24...
在VB 6.0(Visual Basic 6.0)中进行串口编程是开发通信应用程序的关键部分,尤其适用于与硬件设备交互,如嵌入式系统、数据采集设备或远程控制设备。串口通信允许计算机通过串行端口发送和接收数据,这在很多工程和...
在本文中,我们将深入探讨如何使用C#.NET进行串口编程,特别是在智能家居水电表项目的上下文中。串口通信是连接不同设备,如家庭网关和PC机,进行数据交换的关键技术。 **一、需求分析** 1. **智能家居水电表**:...
Win32 串口编程 Win32 串口编程是指在 Windows 平台上进行串口通信的编程方法。串口通信是一种常用的工业控制方法,经常用于工控机和智能仪表之间的通信。Win32 串口编程可以使用两种方法:使用 ActiveX 控件和使用...
Java串口编程是Java开发中一个重要的领域,尤其在物联网(IoT)、嵌入式系统和设备通信中,它扮演着关键角色。本资源包包含的8个文件旨在帮助开发者全面理解并掌握这一技术。以下是对每个知识点的详细解释: 1. **...
本示例"Linux c++多线程串口编程demo"聚焦于利用多线程技术实现串口通信,这是一种常见的硬件接口,用于设备之间的数据交换。下面我们将深入探讨这个demo涉及的知识点。 1. **多线程编程**:在C++中,我们可以使用`...
在给定的教程中,“MFC串口编程详细教程 图文并茂”将引导我们通过创建一个简单的上位机应用,实现与下位机或其他设备的串口通信。 串口通信是计算机与外部设备之间通过串行接口进行数据交换的一种方式,常见于工业...
### Windows CE串口编程要点详解 #### 一、引言 在嵌入式系统开发领域,串口通信是一项基础且重要的技术,特别是在Windows CE平台上,掌握串口编程对于实现设备间的数据交换至关重要。本文旨在深入解析Windows CE...
在Android平台上进行串口编程,主要是为了实现设备之间的通信,比如连接硬件设备、传感器或者其他嵌入式系统。本文将深入探讨Android串口编程的基本概念、原理以及如何通过示例项目`SerialDemo`来实现串口通信。 1....
Linux串口编程详解 串口编程是计算机科学中的一种重要技术,它允许计算机与外部设备进行通信。编程语言中串口编程的实现方式有多种,包括使用C语言、Java语言等。 Linux串口编程详解中,串口是计算机上的串行通讯...
C#串口编程案例,对实际串口编程有很大的帮助
公开推出我最初用VC控件MSComm编写串口通信程序的源代码,并写出详细的编程过程,姑且叫串口调试助手源程序V1.0或VC串口通讯源程序吧,我相信,如果你用VC编程,那么有了这个代码,就可以轻而易举地完成串口编程任务...
在IT行业中,串口编程是实现设备间通信的重要方式,特别是在嵌入式系统、工业自动化等领域。DELPHI,作为一款强大的面向对象的编程环境,提供了丰富的库和API来支持串口通信。在这个"DELPHI例程(串口编程)"的资料中...
6. **Modbus协议**:Modbus是一种广泛应用于工业领域的通信协议,串口编程调试精灵支持Modbus协议,意味着它可以进行读写寄存器、线圈等操作。理解Modbus的帧结构和命令编码对于正确使用此工具至关重要。 7. **调试...
### Linux下串口编程简单实例详解 #### 一、引言 随着嵌入式设备的广泛应用,串口作为计算机与嵌入式系统之间的重要通信手段,其编程技术变得尤为重要。Linux系统提供了丰富的API来支持串口编程,使得开发人员能够...
《Windows串口编程C++详解》 在Windows环境下进行串口通信是许多硬件交互和设备控制应用的基础,而C++作为通用且强大的编程语言,被广泛用于实现这一功能。本文将深入探讨如何使用C++进行Windows串口编程,特别是...