C#的串口通信源程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机串口通信的上位机和下位机
首先亮出C#的源程序吧。
主要界面:
只是作为简单的运用,可以扩展的。
源代码:
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Timers;
namespace 单片机功能控制
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SerialPort sp = new SerialPort();
private void button1_Click(object sender, EventArgs e)
{
String str1 = comboBox1.Text;//串口号
String str2 = comboBox2.Text;//波特率
String str3 = comboBox3.Text;//校验位
String str4 = comboBox5.Text;//停止位
String str5 = comboBox4.Text;//数据位
Int32 int2 = Convert.ToInt32(str2);//将字符串转为整型
Int32 int5 = Convert.ToInt32(str5);//将字符串转为整型
groupBox3.Enabled = true;//LED控制界面变可选
try
{
if (button1.Text == "打开串口")
{
if (str1 == null)
{
MessageBox.Show("请先选择串口!", "Error");
return;
}
sp.Close();
sp = new SerialPort();
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 (Exception er)
{
MessageBox.Show("Error:" + er.Message, "Error");
return;
}
}
private void Form1_Load(object sender, EventArgs e)
{
//初始化
textBox1.Text = "欢迎使用简易的串口助手!";
groupBox3.Enabled = false;//LED控制界面变灰色
groupBox6.Enabled = false;
groupBox7.Enabled = false;
groupBox8.Enabled = false;
button3.Enabled = false;
button6.Enabled = false;
timer1.Start();
try