c#串口通讯软件设计.pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c# 串口通讯软件设计 最近工作用到 modbus, 同时也用到了上位机软件,看到 主管用 vb 写的软件可以通过串口与我的下位机通讯,显 示数据,觉得很好玩。所以回家一时冲动,就下了个 vs2005 ,准备也搞一搞,但用个啥语言呢?思考了一下, vb-- 太老, c++ ,太复杂, java ,貌似得加软件,没敢玩, 最后思来想去,决定了一个比较靠普的语言, c# ,这个 目前写软件还是比较流行的,用的人很多,例子也很多, 关键是类似 vb ,但是以 c 为基础的。所以很适合我。下 面是通过了 1 天艰苦奋斗,写的一个破串口通讯软件 调试的截屏,有点傻,不过基本功能还是可以的,计 数,发送,接受,串口,波特率设置,都是可以设置的, 不过校验目前还没有,第一步算是搞定了,以后慢慢完 善。 发现这东西,其实也不太难。很多东西都用函数封装 起来了,直接调用就行,貌似比 c 语言方便。 创建项目就不说了,写 com代码事,需要加一些类似 的头文件的声明。 using System.IO.Ports; 在界面初始化时,初始化串口 private SerialPort comm = new SerialPort(); // 具体干啥的,我也不知道 貌似是将 comm变成串 口结构 这个语句很有意思,我局的很神奇,就是有哪些信誉好的足球投注网站串口号, 然后将其复制在 ports 数组中。 string[] ports = SerialPort.GetPortNames(); // 获取串口号,将其存入一个一维字符串数组 这样的话,一下子,就可以知道目前哪个串口是处于 可工作的状态。 Array.Sort(ports); // 对一个一维数组进行排列 这个函数也挺有意思,他可以对字符串数组进行排列, 一句话就搞定了,如果是 c 的话,费了劲了,首先要将 字符串变成数据,然后再对数据进行排列,至于怎么样 排列,我也不知道,没做过,可是这个,一句就可以了, 不错不错 labelTXdata.Text = quot; 发送数据: quot; + send_count.ToString(); 上面这句,可以使文字控件按照你的意思显示变量, 类似在 c 语言中,让 1602 显示数据一样。 void comm_DataReceived(object sender, SerialDataReceivedEventArgs e) 这个貌似就是串口接受函数,类似 c 口中断,接受到 数据后,进入这个函数来处理 // 依次的拼接出 16 进制字符串 foreach (byte b in buf) { builder.Append(b.ToString(quot;X2quot;) + quot; quot;); } // 转换列表为数组后发送 comm.Write(buf.ToArray(), 0, buf.Count); 在这句话的前面还有那么几句 // 我们不管规则了。如果写错了一些,我们允许的, 只用正则得到有效的十六进制数 MatchCollection mc = Regex.Matches(SENDBOX.Text, @quot;(?i)[\da-f]{2}quot;); List; buf = new List;();// 填充到这个临时列表中 // 依次添加到列表中 foreach (Match m in mc) { buf.Add(byte.Parse(m.Value, System.Globalization.NumberStyles.HexNumbe

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档