串口调试助手源代码

2019-04-14 23:37

串口调试助手预源代码

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Threading.Tasks; using System.Windows.Forms; using System.IO;

using System.IO.Ports; using System.Threading;

using DevExpress.XtraEditors;

using System.Text.RegularExpressions;

namespace WindowsFormsApplication3 {

public partial class Form1 : XtraForm {

SerialPort sp1 = new SerialPort(); int Flag = 0;

int StateChanged = 0;

int StateChanged_Ascii = 1; int StateChanged_16 = 0;

string Temp = null;

string Temp_memoSend = null;

private void memoSend_EditValueChanged(object sender, EventArgs e) {

}

public Form1() {

InitializeComponent();

sp1.DataReceived += sp1_DataReceived; }

private void Form1_Load(object sender, EventArgs e) {

this.MaximizeBox = false; //检查是否有串口

string[] str = SerialPort.GetPortNames(); if (str == null) {

MessageBox.Show(\本机没有串口!\ return; }

//添加串口项目

foreach (string port in System.IO.Ports.SerialPort.GetPortNames()) {

cbSerial.Properties.Items.Add(port); }

//串口设置默认选择项

cbSerial.SelectedIndex = 0;

Control.CheckForIllegalCrossThreadCalls = false; sp1.DataReceived += new

SerialDataReceivedEventHandler(sp1_DataReceived); //订阅委托

}

private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e)

{

}

private void OpenSerial_Click(object sender, EventArgs e) {

sp1.Close();

//SerialPort sp1 = new SerialPort();

if (!sp1.IsOpen)//串口是关闭的,设置参数,打开串口 {

try {

//获取串口号

string serialName = cbSerial.SelectedItem.ToString(); sp1.PortName = serialName;

//设置各参数

string strBaudRate = cbBaudRate.Text; string strDateBits = cbDataBits.Text; string strStopBits = cbStop.Text;

sp1.BaudRate = Convert.ToInt32(strBaudRate);//波特率 sp1.DataBits = Convert.ToInt32(strDateBits);//数据位 switch (cbStop.Text) //停止位 {

case \

sp1.StopBits = StopBits.One; break; case \

sp1.StopBits = StopBits.One; break; case \

sp1.StopBits = StopBits.Two; break; default:

MessageBox.Show(\参数不正确!\ break; }

switch (cbParity.Text) //校验位 {

case \无\

sp1.Parity = Parity.None; break; case \奇校验\

sp1.Parity = Parity.Odd; break; case \偶校验\

sp1.Parity = Parity.Even; break; default:

MessageBox.Show(\参数不正确!\ break; }

if (sp1.IsOpen == true) {

sp1.Close(); }

sp1.Open();

//btnOpen.Enabled = false;

labSerial.Text = \串口号:\ labState.Text = \状态:打开\ }

catch (System.Exception ex) {

MessageBox.Show(\ return; } } }

//private void CloseSerial_Click(object sender, EventArgs e) //{

// if (sp1.IsOpen) // {

// sp1.Close();

// labSerial.Text = \串口号:\ // labState.Text = \状态:关闭\ // } //}

private void Send_Click(object sender, EventArgs e) {

string StrSend = memoSend.Text; if (!sp1.IsOpen) {

MessageBox.Show(\请先打开串口!\ return; } else {

if (rbtnSendStr.Checked) //字符串发送 {

if (ckTimeSend.Checked

&& !(string.IsNullOrEmpty(textTime.Text)))//判断是否定时发送数据 {

string Time = textTime.Text;

tmSend.Interval = int.Parse(Time) * 1000;//时间单位是秒,化成毫秒单位

tmSend.Start(); //开启定时器 } else {

sp1.Write(StrSend); //写入数据 }

}

else //十六进制发送 {

if (ckTimeSend.Checked && !(string.IsNullOrEmpty(textTime.Text))) {

string Time = textTime.Text;

tmSend.Interval = int.Parse(Time) * 1000; tmSend.Start(); } else {

string StrSend_1 = StrSend.Trim(); //去掉前后的空格

//string StrSend_2 = StrSend_1.Replace(\ //string StrSend_3 = string.Join(\Regex.Matches(StrSend_2, @\

string[] StrArray = StrSend_1.Split(' '); //用空格符隔开字符串数组

var Str_Send = new List();

// int byteBufferLength = StrArray.Length; //数组StrArray的长度

for (int i = 0; i < StrArray.Length; i++) {

if (StrArray[i].Trim() == \ {

//byteBufferLength--; continue; } else


串口调试助手源代码.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:肿瘤的化疗方案大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: