- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 100以内加减法竖式练习题-两位数加减法竖式练习题A4直接打印.doc VIP
- 铁道供电技术职业生涯规划书.pptx VIP
- 会计职业生涯规划书5篇.pdf VIP
- 2024最新民事起诉状.doc VIP
- 3D工程图学(华中科大)中国大学MOOC慕课 章节测验 客观题答案.docx
- 血液透析患者护理查房课件.pdf VIP
- 初级消防设施操作员.docx VIP
- 北京市宣武区2024-2025学年六年级数学第一学期期末调研试题含解析.doc VIP
- 2024-2025学年英语三年级上册人教精通版(三起)(2024)教学设计(附教材目录).docx VIP
- 二年级语文上册-第七单元【教材解读】.pptx VIP
文档评论(0)