用C#在一台电脑上面做串口调试的程序代码
来源:互联网 发布:java 引用传递关键字 编辑:程序博客网 时间:2024/05/17 09:35
今天要做一个串口的调试小程序,我就在一个例子的上面做了一些小的修改!!
代码如下:
sing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace SerialPortTest
{
public partial class Form1 : Form
{
SerialPort sp = null;
bool IsOpen = false;
bool IsSetProperty = false;
public Form1()
{
InitializeComponent();
}
private void btnExit_Click(object sender, EventArgs e) //退出程序
{
sp.Close();
Application.Exit();
}
private void btnFindPort_Click(object sender, EventArgs e) //检测可用的串口
{
PortChoose.Items.Clear();
for (int i = 0; i <256; i++)
{
try
{
SerialPort sp =new SerialPort("COM"+(i+1).ToString());
sp.Open();
sp.Close();
PortChoose.Items.Add("COM"+(i+1).ToString());
}
catch(Exception)
{
labelState.Text= "COM"+(i+1).ToString()+"不可用";
continue;
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
this.MaximumSize = this.Size;
this.MinimumSize = this.Size;
for (int i = 0; i < 256; i++)
{
PortChoose.Items.Add("COM" + (i + 1).ToString());
}
}
private bool CheckPortSetting() //检查串口设置
{
if (PortChoose.Text.Trim() == "" || PortJiOu.Text.Trim() == "" || PortBaude.Text.Trim() == "" || PortData.Text.Trim() == "" || PortStop.Text.Trim() == "")
{
return false;
}
else
{
return true;
}
}
private bool SendData()
{
if (SendDataBox.Text.Trim() == "")
{ return false; }
else
{ return true;}
}
private void SetPortProperty() //设置串口的属性
{
sp = new SerialPort();
sp.PortName = PortChoose.Text.Trim();
sp.BaudRate = Convert.ToInt32( PortBaude.Text.Trim());
float f = Convert.ToSingle(PortStop.Text.Trim());
if (f == 0)
{
sp.StopBits = StopBits.None;
}
else if (f == 1)
{
sp.StopBits = StopBits.One;
}
else if (f == 1.5)
{
sp.StopBits = StopBits.OnePointFive;
}
else if (f == 2)
{
sp.StopBits = StopBits.Two;
}
else
{
sp.StopBits = StopBits.One;
}
sp.DataBits = Convert.ToInt16(PortData.Text.Trim());
//设置ji偶校验位
string s = PortJiOu.Text.Trim();
if (s.CompareTo("无")==0)
{
sp.Parity = Parity.None;
}
else if (s.CompareTo("奇校验") == 0)
{
sp.Parity = Parity.Odd;
}
else if (s.CompareTo("偶校验") == 0)
{
sp.Parity = Parity.Even;
}
else
{
sp.Parity = Parity.None;
}
sp.ReadTimeout = -1; //设置超时读取时间
//打开串口
try
{
sp.Open();
IsOpen = true;
}
catch (Exception)
{
labelState.Text = "打开串口时发生错误!";
}
}
private void btnSendData_Click(object sender, EventArgs e) //发送数据
{
if (!CheckPortSetting())
{
MessageBox.Show("串口未设置!", "错误提示!");
return;
}
if (!SendData())
{
MessageBox.Show("输入要发送的数据!", "错误提示!");
return;
}
if (!IsSetProperty)
{
SetPortProperty();
IsSetProperty = true;
}
if (IsOpen)
{
try
{
sp.Close();
sp.Open();
sp.WriteLine(SendDataBox.Text);
}
catch (Exception)
{
labelState.Text = "发送数据时发生错误!";
return;
}
}
else
{
MessageBox.Show("串口未打开!","错误提示!");
return;
}
SendDataBox.Text = "";
}
private void btnAcepptData_Click(object sender, EventArgs e) /接收数据
{
if (IsOpen)
{
try
{
//读取串口数据
AcceptDataBox.Text += sp.ReadLine();
}
catch (Exception)
{
labelState.Text = "读取失败!";
return;
}
finally
{
sp.Close();
}
}
else
{
MessageBox.Show("串口未打开!", "提示!");
return;
}
}
}
}
- 用C#在一台电脑上面做串口调试的程序代码
- 如何在一台电脑上调试串口收发数据
- 怎样在一台电脑上面做ARP攻击与防御的实验?哪种平台最好?希望高手指点,急!!!
- 如何在WinCE模拟器中调试串口程序(两台设备、一台设备的两种情况下的串口调试)
- 使用虚拟串口在一台电脑上模拟串口通讯
- 用vs2010开发基于VC++的MFC 串口通信一*****两台电脑同一个串口号之间的通信
- 用vs2010开发基于VC++的MFC 串口通信一*****两台电脑同一个串口号之间的通信
- (转载)用vs2010开发基于VC++的MFC 串口通信一*****两台电脑同一个串口号之间的通信
- 用vs2010开发基于VC++的MFC 串口通信一*****两台电脑同一个串口号之间的通信
- 一台电脑上面安装多个Tomcat 服务
- 在一台电脑访问另一台电脑的mysql数据库
- 在一台电脑访问另一台电脑的mysql数据库
- 在一台电脑访问另一台电脑的mysql数据库
- 在一台空白的电脑上安装Android Studio
- 在一台机器上写好的javaweb换了一台电脑,出现错误<%
- 想在一台电脑上同时登录两个飞信帐号怎么做?
- 在一台机器上面好使的程序,到另一台不好使,提示,无法解析的外部命令
- 在一台服务器上面,JVM可以分配到的最大内存是多少?
- 下拉列表和滚动条等无法显示的问题
- android memory manager
- Hibernate缓存机制
- IE控件编程)
- Android里string.xml使用html标签的方法
- 用C#在一台电脑上面做串口调试的程序代码
- c语言中堆和栈的区别
- MAC下Android的Eclipse开发环境的搭建
- 华为 2014 年 机试题一二
- jquery实现仿select列表的即时搜索及拼音搜索
- 解决IIS运行身份访问局域网共享文件夹问题
- dos命令 查看端口
- Oracle诊断事件列表
- Vim 实用技术,第 1 部分: 实用技巧(转)