基于VS2010串口通信的快速开发_第1页
基于VS2010串口通信的快速开发_第2页
基于VS2010串口通信的快速开发_第3页
基于VS2010串口通信的快速开发_第4页
基于VS2010串口通信的快速开发_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于VS2010串口通信的快速开发1、开发环境:基于VS2010的串口通信程序,语言:c#2、方法有几个?方法1:使用SerialPort组件,“勉强”可以。方法2:使用ComY组件,绝对可以。方法3:使用ComZ控件,绝对可以。3、第一个例子(方法2)3.1、新建项目TestComY,并拖放如下控件/组件并定义其名称如下表。序号控件类型控件名称用途显示信息备注01RichTextBoxRxRichTextBox显示接收接收区02RichTextBoxTxRichTextBox输入发送数据1234567890发送区03TextBoxRxTextBox显示接收数量计数器值04TextBoxTxTextBox显示发送数量计数器值05labellabel1指示接收计数区R计数器标识06labelLabel2指示发送计数区T计数器标识07ButtonBtnClearCounter清空计数器值清零08ButtonBtnComOpen打开串口打开09ButtonBtnComClose关闭串口关闭10ButtonBtnComTx发送数据区的数据发送11ButtonBtnComRx接收并显示数据接收12comYcomY1通信组件通信服务效果图如下3.2、编写代码双击界面中的五个按钮得到如下代码。namespaceTestComY{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidBtnComTx_Click(objectsender,EventArgse){}privatevoidBtnComRx_Click(objectsender,EventArgse){}privatevoidBtnComOpen_Click(objectsender,EventArgse){}privatevoidBtnComClose_Click(objectsender,EventArgse){}privatevoidBtnClearCounter_Click(objectsender,EventArgse){}}}3.3、打开串口privatevoidBtnComOpen_Click(objectsender,EventArgse){comY1.SetPortPara("COM1",115200);comY1.Open();BtnComOpen.Enabled=false;BtnComClose.Enabled=true;}3.4、关闭串口privatevoidBtnComClose_Click(objectsender,EventArgse){comY1.Close();BtnComClose.Enabled=false;BtnComOpen.Enabled=true;}3.5、发送数据及显示发送数据量privatevoidBtnComTx_Click(objectsender,EventArgse){comY1.Send(TxRichTextBox.Text);TxTextBox.Text=comY1.TxCounterVal.ToString();}3.6、接收数据及显示接收数据量privatevoidBtnComRx_Click(objectsender,EventArgse){if(comY1.IsGotNewData()==true)RxRichTextBox.Text+=comY1.GetRxHexWithBlankString();RxTextBox.Text=comY1.RxCounterVal.ToString();}3.7、清空计数器privatevoidBtnClearCounter_Click(objectsender,EventArgse){RxTextBox.Text="";TxTextBox.Text="";comY1.RxCounterVal=0;comY1.TxCounterVal=0;}3.8、代码量实现基本功能全部代码不到50行,如下图3.8、运行效果图3.8.1、打开串口3.8.2、发送数据3.8.3、接收数据3.8.4、关闭串口点发送3.9、发送接收中文及ASCII3.9.1、打开串口修改如下privatevoidBtnComOpen_Click(objectsender,EventArgse){comY1.SetPortPara("COM1",115200);comY1.IsHexMode=false; //添加代码comY1.Open();BtnComOpen.Enabled=false;BtnComClose.Enabled=true;}3.9.2、接收代码修改如下privatevoidBtnComRx_Click(objectsender,EventArgse){if(comY1.IsGotNewData()==true){if(comY1.IsHexMode==true) //添加代码RxRichTextBox.Text+=comY1.GetRxHexWithBlankString();elseRxRichTextBox.Text+=comY1.GetRxAsciiString(); //添加代码}RxTextBox.Text=comY1.RxCounterVal.ToString();}3.9.3、运行效果图如下4、第2个例子(方法3)4.1、新建窗体工程(testComZ)及添加控件如下表序号控件类型控件名称用途显示信息备注01RichTextBoxRxBox显示接收接收区02RichTextBoxTxBox输入发送数据12345678发送区03TextBoxRxTextBox显示接收数量计数器值04TextBoxTxTextBox显示发送数量计数器值05labelLabel2指示接收计数区发送计数器标识06labelLabel3指示发送计数区接收计数器标识07ButtonbtnClean清空计数器值清零08ButtonbtnTx发送数据区的数据发送09ButtonBtnRx接收并显示数据接收10comZcomZ1通信组件通信服务效果图如下4.2、编写代码双击界面上的按钮得到如下代码namespacetestComZ{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbtnTx_Click(objectsender,EventArgse){}privatevoidBtnRx_Click(objectsender,EventArgse){}privatevoidbtnClean_Click(objectsender,EventArgse){}}}4.3、发送数据及显示发送数据量privatevoidbtnTx_Click(objectsender,EventArgse){UInt32txcounter;comZ1.Send(TxBox.Text);txcounter=comZ1.TxCounterVal;TxTextBox.Text=txcounter.ToString();}4.4、接收数据及显示接收数据量privatevoidBtnRx_Click(objectsender,EventArgse){if(comZ1.IsGotNewData()==true){if(comZ1.IsHexMode==true)RxBox.Text+=comZ1.GetRxStringAndHexWithBlank();elseRxBox.Text+=comZ1.GetRxAsciiString();RxTextBox.Text=comZ1.RxCounterVal.ToString();}}4.5、清零计数器privatevoidbtnClean_Click(objectsender,EventArgse){comZ1.TxCounterVal=0;comZ1.RxCounterVal=0;TxTextBox.Text=comZ1.TxCounterVal.ToString();RxTextBox.Text=comZ1.RxCounterVal.ToString();}4.6、运行效果图4.6.1、打开串口4.6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论