using 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 串口通信3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen) //打开串口
{
ovalShape1.FillColor = Color.Gray;
try
{
serialPort1.Close();
}
catch { } //确保万无一失
button2.Text = "打开串口";
}
else
{
try
{
serialPort1.PortName = comboBox1.Text;//端口号
serialPort1.Open();
ovalShape1.FillColor = Color.Green;
button2.Text = "关闭串口";
}
catch
{
MessageBox.Show("串口打开失败", "错误");
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
ovalShape1.FillColor = Color.Gray;
SeachAddAddSerialToComboBox(serialPort1, comboBox1);
}
private void SeachAddAddSerialToComboBox(SerialPort MyPort, ComboBox MyBox)
{ //将可用端口号添加到ComboBox
//string[] MyString = new string[20]; //最多可容纳20个,太多会影响调试效率
string Buffer; // 缓存
MyBox.Items.Clear(); //清空ComboBox内容
//int count = 0;
for (int i = 1; i < 30; i++)
{
try
{
Buffer = "COM" + i.ToString();
MyPort.PortName = Buffer;
MyPort.Open();
//MyString[count] = Buffer;
MyBox.Items.Add(Buffer);
MyPort.Close();
//count++;
}
catch{
//count--;
}
}
//MyBox.Text = MyString[0];//初始化
}
private void WriteByteToSerialPort(byte data)//单字节写入串口
{
byte[] Buffer = new byte[2] { 0x00, data };//定义数组
if (serialPort1.IsOpen)
{
try
{
serialPort1.Write(Buffer, 0, 2);//写数据
}
catch
{
MessageBox.Show("串口数据发送出错,请检查。", "错误");
}
}
}
}
}
C# 005 串口通信 串口扫描 开关指示灯
最新推荐文章于 2024-09-12 03:57:47 发布