基于C#的串口通信上位机和下位机源程序文件.docx

上传人:b****5 文档编号:11877221 上传时间:2023-04-08 格式:DOCX 页数:49 大小:19.85KB
下载 相关 举报
基于C#的串口通信上位机和下位机源程序文件.docx_第1页
第1页 / 共49页
基于C#的串口通信上位机和下位机源程序文件.docx_第2页
第2页 / 共49页
基于C#的串口通信上位机和下位机源程序文件.docx_第3页
第3页 / 共49页
基于C#的串口通信上位机和下位机源程序文件.docx_第4页
第4页 / 共49页
基于C#的串口通信上位机和下位机源程序文件.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

基于C#的串口通信上位机和下位机源程序文件.docx

《基于C#的串口通信上位机和下位机源程序文件.docx》由会员分享,可在线阅读,更多相关《基于C#的串口通信上位机和下位机源程序文件.docx(49页珍藏版)》请在冰豆网上搜索。

基于C#的串口通信上位机和下位机源程序文件.docx

基于C#的串口通信上位机和下位机源程序文件

....

 

基于单片机串口通信的上位机和下位机实践

 

串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线UniversalSerial

 

Bus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设

 

备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用

 

于获取远程采集设备的数据。

 

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节

 

(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数

 

据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总

 

常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达

 

1200米。

 

首先亮出C#的源程序吧。

 

主要界面:

 

只是作为简单的运用,可以扩展的。

 

.下载可编辑.

....

 

源代码:

 

usingSystem;

 

usingSystem.Collections.Generic;

 

usingSystem.ComponentModel;

 

usingSystem.Data;

 

usingSystem.Drawing;

 

usingSystem.Text;

 

usingSystem.Windows.Forms;

 

usingSystem.IO.Ports;

 

usingSystem.Timers;

 

namespace单片机功能控制

 

{

 

publicpartialclassForm1:

Form

 

{

 

publicForm1()

 

{

 

InitializeComponent();

 

}

 

SerialPortsp=newSerialPort();

 

privatevoidbutton1_Click(objectsender,EventArgse)

 

.下载可编辑.

....

 

{

 

Stringstr1=comboBox1.Text;//串口号

 

Stringstr2=comboBox2.Text;//波特率

 

Stringstr3=comboBox3.Text;//校验位

 

Stringstr4=comboBox5.Text;//停止位

 

Stringstr5=comboBox4.Text;//数据位

 

Int32int2=Convert.ToInt32(str2);//将字符串转为整型

 

Int32int5=Convert.ToInt32(str5);//将字符串转为整型

 

groupBox3.Enabled=true;//LED控制界面变可选

 

try

 

{

 

if(button1.Text=="打开串口")

 

{

 

if(str1==null)

 

{

 

MessageBox.Show("请先选择串口!

","Error");

 

return;

 

}

 

sp.Close();

 

.下载可编辑.

....

 

sp=newSerialPort();

 

sp.PortName=comboBox1.Text;//串口编号

 

sp.BaudRate=int2;//波特率

 

switch(str4)//停止位

 

{

 

case"1":

 

sp.StopBits=StopBits.One;

 

break;

 

case"1.5":

 

sp.StopBits=StopBits.OnePointFive;

 

break;

 

case"2":

 

sp.StopBits=StopBits.Two;

 

break;

 

default:

 

MessageBox.Show("Error:

参数不正确","Error");

 

break;

 

}

 

switch(str3)

 

{

 

case"NONE":

 

sp.Parity=Parity.None;break;

 

.下载可编辑.

....

 

case"ODD":

 

sp.Parity=Parity.Odd;break;

 

case"EVEN":

 

sp.Parity=Parity.Even;break;

 

default:

 

MessageBox.Show("Error:

参数不正确","Error");

 

break;

 

}

 

sp.DataBits=int5;//数据位

 

sp.Parity=Parity.Even;//设置串口属性

 

sp.Open();//打开串口

 

button1.Text="关闭串口";

 

textBox1.Text=Convert.ToString(sp.PortName)+"已开启!

";

 

}

 

else

 

{

 

sp.Close();

 

button1.Text="打开串口";

 

groupBox3.Enabled=false;//LED控制界面变灰色

 

.下载可编辑.

....

 

textBox1.Text=Convert.ToString(sp.PortName)+"已关闭!

";

 

}

 

}

 

catch(Exceptioner)

 

{

 

MessageBox.Show("Error:

"+er.Message,"Error");

 

return;

 

}

 

}

 

privatevoidForm1_Load(objectsender,EventArgse)

 

{

 

//初始化

 

textBox1.Text="欢迎使用简易的串口助手!

";

 

groupBox3.Enabled=false;//LED控制界面变灰色

 

groupBox6.Enabled=false;

 

groupBox7.Enabled=false;

 

groupBox8.Enabled=false;

 

button3.Enabled=false;

 

button6.Enabled=false;

 

timer1.Start();

 

.下载可编辑.

....

 

try

 

{

 

foreach(stringcominSystem.IO.Ports.SerialPort.GetPortNames())//

 

自动获取串行口名称

 

boBox1.Items.Add(com);

 

//默认设置

 

comboBox1.SelectedIndex=0;//选择第一个com口

 

comboBox2.SelectedIndex=4;//波特率4800

 

comboBox3.SelectedIndex=0;//校验位NONE

 

comboBox4.SelectedIndex=0;//停止位为1

 

comboBox5.SelectedIndex=0;//数据位为8

 

}

 

catch

 

{

 

MessageBox.Show("找不到通讯端口!

","串口调试助手");

 

}

 

}

 

privatevoidtimer1_Tick(objectsender,EventArgse)

 

{

 

label6.Text=DateTime.Now.ToString();

 

.下载可编辑.

....

 

}

 

privatevoidbutton2_Click(objectsender,EventArgse)

 

{

 

try{

 

if(button2.Text=="开启")

 

{

 

groupBox6.Enabled=true;

 

radioButton1.Checked=false;

 

radioButton2.Checked=false;

 

radioButton3.Checked=false;

 

radioButton4.Checked=false;

 

checkBox1.Checked=false;

 

checkBox2.Checked=false;

 

checkBox3.Checked=false;

 

checkBox4.Checked=false;

 

checkBox5.Checked=false;

 

checkBox6.Checked=false;

 

checkBox7.Checked=false;

 

checkBox8.Checked=false;

 

button3.Enabled=true;

 

textBox2.Text=String.Empty;

 

.下载可编辑.

....

 

button2.Text="关闭";

 

}

 

else

 

{

 

groupBox6.Enabled=false;

 

button3.Enabled=false;

 

button2.Text="开启";

 

textBox2.Text=String.Empty;

 

}

 

}

 

catch(Exceptioner)

 

{

 

MessageBox.Show("Error:

"+er.Message,"Error");

 

return;

 

}

 

}

 

privatevoidbutton3_Click(objectsender,EventArgse)

 

{

 

groupBox6.Enabled=true;

 

.下载可编辑.

....

 

label7.Text="已发送";

 

if(textBox2.Text=="")

 

MessageBox.Show("发送失败,请选择发送的数据!

");

 

else

 

sp.WriteLine(textBox2.Text);//往串口写数据

 

}

 

privatevoidcheckBox1_CheckedChanged(objectsender,EventArgse)

 

{

 

try{

 

if(checkBox1.Checked)

 

{

 

checkBox1.Checked=true;

 

checkBox2.Checked=false;

 

checkBox3.Checked=false;

 

checkBox4.Checked=false;

 

checkBox5.Checked=false;

 

checkBox6.Checked=false;

 

checkBox7.Checked=false;

 

checkBox8.Checked=false;

 

label7.Text="准备发送";

 

textBox2.Text="1";

 

.下载可编辑.

....

 

}

 

}

 

catch(Exceptioner)

 

{

 

MessageBox.Show("Error:

"+er.Message,"Error");

 

return;

 

}

 

}

 

privatevoidcheckBox2_CheckedChanged(objectsender,EventArgse)

 

{

 

try{

 

if(checkBox2.Checked)

 

{

 

checkBox1.Checked=false;

 

checkBox2.Checked=true;

 

checkBox3.Checked=false;

 

checkBox4.Checked=false;

 

checkBox5.Checked=false;

 

checkBox6.Checked=false;

 

checkBox7.Checked=false;

 

.下载可编辑.

....

 

checkBox8.Checked=false;

 

label7.Text="准备发送";

 

textBox2.Text="2";

 

radioButton1.Checked=false;

 

radioButton2.Checked=false;

 

radioButton3.Checked=false;

 

radioButton4.Checked=false;

 

}

 

}

 

catch(Exceptioner)

 

{

 

MessageBox.Show("Error:

"+er.Message,"Error");

 

return;

 

}

 

}

 

privatevoidcheckBox3_CheckedChanged(objectsender,EventArgse)

 

{

 

try

 

{

 

if(checkBox3.Checked)

 

{

 

.下载可编辑.

....

 

checkBox1.Checked=false;

 

checkBox2.Checked=false;

 

checkBox3.Checked=true;

 

checkBox4.Checked=false;

 

checkBox5.Checked=false;

 

checkBox6.Checked=false;

 

checkBox7.Checked=false;

 

checkBox8.Checked=false;

 

radioButton1.Checked=false;

 

radioButton2.Checked=false;

 

radioButton3.Checked=false;

 

radioButton4.Checked=false;

 

label7.Text="准备发送";

 

textBox2.Text="3";

 

}

 

}

 

catch(Exceptioner)

 

{

 

MessageBox.Show("Error:

"+er.Message,"Error");

 

return;

 

}

 

}

 

.下载可编辑.

....

 

privatevoidcheckBox4_CheckedChanged(objectsender,EventArgse)

 

{

 

try

 

{

 

if(checkBox4.Checked)

 

{

 

checkBox1.Checked=false;

 

checkBox2.Checked=false;

 

checkBox3.Checked=false;

 

checkBox4.Checked=true;

 

checkBox5.Checked=false;

 

checkBox6.Checked=false;

 

checkBox7.Checked=false;

 

checkBox8.Checked=false;

 

radioButton1.Checked=false;

 

radioButton2.Checked=false;

 

radioButton3.Checked=false;

 

radioButton4.Checked=false;

 

label7.Text="准备发送";

 

.下载可编辑.

....

 

textBox2.Text="4";

 

}

 

}

 

catch(Exceptioner)

 

{

 

MessageBox.Show("Error:

"+er.Message,"Error");

 

return;

 

}

 

}

 

privatevoidcheckBox5_CheckedChanged(objectsender,EventArgse)

 

{

 

try

 

{

 

if(checkBox5.Checked)

 

{

 

checkBox1.Checked=false;

 

checkBox2.Checked=false;

 

checkBox3.Checked=false;

 

checkBox4.Checked=false;

 

checkBox5.Checked=true;

 

checkBox6.Checked=false;

 

.下载可编辑.

....

 

checkBox7.Checked=false;

 

checkBox8.Checked=false;

 

radioButton1.Checked=false;

 

radioButton2.Checked=false;

 

radioButton3.Checked=false;

 

radioButton4.Checked=false;

 

label7.Text="准备发送";

 

textBox2.Text="5";

 

}

 

}

 

catch(Exceptioner)

 

{

 

MessageBox.Show("Error:

"+er.Message,"Error");

 

return;

 

}

 

}

 

privatevoidcheckBox6_CheckedChanged(objectsender,EventArgse)

 

{

 

try

 

{

 

if(checkBox6.Checked)

 

.下载可编辑.

....

 

{

 

checkBox1.Checked=false;

 

checkBox2.Checked=false;

 

checkBox3.Checked=false;

 

checkBox4.Checked=false;

 

checkBox5.Checked=false;

 

checkBox6.Checked=true;

 

checkBox7.Checked=false;

 

checkBox8.Checked=false;

 

radioButton1.Checked=false;

 

radioButton2.Checked=false;

 

radioButton3.Checked=false;

 

radioButton4.Checked=false;

 

label7.Text="准备发送";

 

textBox2.Text="6";

 

}

 

}

 

catch(Exceptioner)

 

{

 

MessageBox.Show("Error:

"+er.Message,"Error");

 

return;

 

}

 

.下载可编辑.

....

 

}

 

privatevoidcheckBox7_CheckedChanged(objectsender,EventArgse)

 

{

 

try

 

{

 

if(checkBox7.Checked)

 

{

 

checkBox1.Checked=false;

 

checkBox2.Checked=false;

 

checkBox3.Checked=false;

 

checkBox4.Checked=false;

 

checkBox5.Checked=false;

 

checkBox6.Checked=false;

 

checkBox7.Checked=true;

 

checkBox8.Checked=false;

 

radioButton1.Checked=false;

 

radioButton2.Checked=false;

 

radioButton3.Checked=false;

 

radioButton4.Checked=false;

 

label7.Text="准备发送";

 

textBox2.Text="7";

 

.下载可编辑.

....

 

}

 

}

 

catch(Exceptioner)

 

{

 

MessageBox.Show("Error:

"+er.Message,"Error");

 

return;

 

}

 

}

 

privatevoidcheckBox8_CheckedChanged(objectsender,EventArgse)

 

{

 

try

 

{

 

if(checkBox8.Checked)

 

{

 

checkBox1.Checked=false;

 

checkBox2.Checked=false;

 

checkBox3.Checked=false;

 

checkBox4.Checked=false;

 

checkBox5.Checked=false;

 

checkBox6.Checked=false;

 

checkBox7.Checked=false;

 

.下载可编辑.

....

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1