c上位机串口通信助手源代码详解.docx

c上位机串口通信助手源代码详解.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Forpersonaluseonlyinstudyandresearch;notforcommercialuse

c#上位机串口通信助手源代码实例详解

一、 功能

软件打开时,自动检测有效COM端口

软件打开时,自动复原到上次关闭时的状态

不必关闭串口,即可直接进行更改初始化设置内容(串口号、波特率、数据位、停止位、校验位),可按更改后的信息自动将串口重新打开

可统计接收字节和发送字节的个数

接收数据可按16进制数据和非16进制数据进行整体转换

可将接收到数据进行保存

可设置自动发送,发送时间可进行实时更改

可按字符串、16进制字节、文件方式进行发送,字符串和16进制字节可分别进行存储,内容互不干扰

按16进制发送时,可自动校验格式,不会输错

可清空发送或接收区域的数据二、 使用工具

VisualStudio2015

三、 程序详解

界面创建

图1

用winform创建如图1所示界面,控件名字分别为:

端口号:cbxCOMPort 波特率:cbxBaudRate

数据位:cbxDataBits 停止位:cbxStopBits

校验位:label5 打开串口按钮:btnOpenCom

发送(byte):tbSendCount 接收(byte):tbReceivedCount

清空计数按钮:btnClearCount 按16进制显示:cb16Display接收区清空内容按钮:btnClearReceived 保存数据按钮:btnSaveFile接收数据框:tbReceivedData 发送数据框:tbSendData

自动发送:cbAutomaticSend 间隔时间:tbSpaceTime

按16进制发送:cb16Send 发送区清空内容按钮:btnClearSend

读入文件按钮:btnReadFile 发送按钮:btnSend

创建一个方法类

按Ctrl+shift+A快捷键创建一个类,名字叫Methods,代码为:

using

usingSystem;

usingSystem.Collections;

usingSystem.Collections.Generic;usingSystem.IO.Ports;

usingSystem.Linq;usingSystem.Text;

usingSystem.Threading.Tasks;

namespace串口助手sdd

namespace串口助手sdd

{

classMethods

{

//获取有效的COM口

publicstaticstring[]ActivePorts()

{

ArrayListactivePorts=newArrayList();

foreach(stringpnameinSerialPort.GetPortNames())

{

activePorts.Add(Convert.ToInt32(pname.Substring(3)));

}

activePorts.Sort();

string[]mystr=newstring[activePorts.Count];inti=0;

foreach(intnuminactivePorts)

{

mystr[i++]=COM+num.ToString();

}

returnmystr;

}

//16进制字符串转换为byte字符数组

publicstaticByte[]_16strToHex(stringstrValues)

{

string[]hexValuesSplit=strValues.Split();Byte[]hexValues=newByte[hexValuesSplit.Length];Console.WriteLine(hexValuesSplit.Length);

for(inti=0;ihexValuesSplit.Length;i++)

{

hexValues[i]=Convert.ToByte(hexValuesSplit[i],16);

}

returnhexValues;

}

//byte数组以16进制形式转字符串

publicstaticstringByteTo16Str(byte[]bytes)

{

stringrecData=null;//创建接收数据的字符串

foreach(byteoutByteinbytes)//将字节数组以16进制形式遍历到一个字符串内

{

recData+=outByte.ToString(X2)+;

}

return

文档评论(0)

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

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档