




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C#基于SerialPort类实现串口通讯详解本文实例为大家分享了C#基于SerialPort类实现串口通讯的具体代码,供大家参考,具体内容如下
最终效果
窗体设置:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.IO.Ports;
usingSystem.Threading;
usingSystem.Windows.Forms;
namespaceSerialCommunication
publicpartialclassForm1:Form
{
System.Threading.SynchronizationContextm_SyncContext=null;
SerialPortserialPort=null;
ToHexadecimalStringtoHexadecimalString=newToHexadecimalString();
publicForm1()
{
m_SyncContext=SynchronizationContext.Current;
InitializeComponent();
}
//Datainitialization
privatevoidForm1_Load(objectsender,EventArgse)
{
string[]ports=SerialPort.GetPortNames();
SerialPortNumber.Items.AddRange(ports);
SerialPortNumber.SelectedIndex=SerialPortNumber.Items.Count00:-1;
BaudRateCom.Text="9600";
//Setparameters
CheckBitCom.Text="None";
DataBitCom.Text="8";
StopBitCom.Text="One";
}
//Senddata
privatevoidSend_Click(objectsender,EventArgse)
{
try
{
//Senddataandhandleexceptions
byte[]bytes=newbyte[SendMessage.Text.Length];
bytes=Encoding.Default.GetBytes(SendMessage.Text);
serialPort.Write(bytes,0,bytes.Length);
}
catch(Exceptionerror)
{
MessageBox.Show(error.Message);
}
}
//Bytetohexadecimalstring
//Cleardata
privatevoidClear_Click(objectsender,EventArgse)
{
ReceiveMessage.Text="";
}
privatevoidOpen_Click(objectsender,EventArgse)
{
stringportName=SerialPortNumber.Text;
intbuadRate=int.Parse(BaudRateCom.Text);
Parityparity=0;
switch(CheckBitCom.Text)
{
case"None":
parity=Parity.None;break;
case"Odd":
parity=Parity.Odd;break;
case"Even":
parity=Parity.Even;break;
case"Mark":
parity=Parity.Mark;break;
case"Space":
parity=Parity.Space;break;
}
intdataBit=int.Parse(DataBitCom.Text);
StopBitsstopBits=0;
switch(StopBitCom.Text)
{
case"None":
stopBits=StopBits.None;break;
case"One":
stopBits=StopBits.One;break;
case"Tow":
stopBits=StopBits.Two;break;
case"OnePointFive":
stopBits=StopBits.OnePointFive;break;
}
try
{
if(Open.Text=="Open")
{
serialPort=newSerialPort(portName,buadRate,parity,dataBit,stopBits);
serialPort.Open();
Open.Text="Close";
}
elseif(Open.Text=="Close")
{
serialPort.Close();
Open.Text="Open";
}
}
catch(Exceptionerrror)
{
MessageBox.Show(errror.Message);
}
serialPort.DataReceived+=onDataReceived;
}
privatevoidonDataReceived(objectsender,SerialDataReceivedEventArgse)
{
try
{
Byte[]bytes=newbyte[serialPort.BytesToRead];
serialPort.Read(bytes,0,serialPort.BytesToRead);
m_SyncContext.Post(newSendOrPostCallback((obj)=
{
ReceiveMessage.AppendText(Encoding.Default.GetString(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 在线服务隐私保护合同协议书
- 金融投资产品开发协议
- 贵州国企招聘2025贵州磷化(集团)有限责任公司招聘139人笔试参考题库附带答案详解
- 2025黑龙江中铁特货物流股份有限公司招聘75人笔试参考题库附带答案详解
- 2025广东储能产业发展有限公司招聘17人笔试参考题库附带答案详解
- 2025年甘肃人力委托招聘兰州地铁安检人员笔试参考题库附带答案详解
- 赠友送别类试题及答案
- 乡村道路养护合同协议书
- 行政代理合同协议书模板
- 拆迁合同协议书图片大全
- 消毒供应室专科理论考试题库(单选、多选共500题)
- 行政执法讲座课件
- DB32T 2197-2022 水文自动测报系统数据传输规约(修订)
- 心肺交互作用-
- 幼儿园中班课件:《预防感冒》
- 高中地理人教版高中必修1第二章 地球上的大气大气的受热过程教学设计
- 肛肠科 肛门湿疡病中医诊疗方案
- 毒理基因组学与系统毒理学
- 单线铁路隧道毕业设计计算书(72页)
- 山东省安全生产条例题库200题含答案
- 《毕业设计--年产4000吨甲胺精馏工段的工艺初步设计 》
评论
0/150
提交评论