C#实现串口通信(自身留稿方便以后查看)
来源:互联网 发布:用java编写的过关游戏 编辑:程序博客网 时间:2024/06/06 15:47
连接串口程序,发起握手,传递参数和接收参数的代码
SerialPort serialPort = new SerialPort();
private void button1_Click(object sender, EventArgs e)
{
try
{
string[] portName = SerialPort.GetPortNames();
serialPort.PortName = "COM3";
serialPort.BaudRate = 115200;
serialPort.DataBits = 8;
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;
serialPort.Open();
Control.CheckForIllegalCrossThreadCalls = false; //强制不检查跨线程的调用是否合法,为了能在订阅返回时修改label的Text
serialPort.DataReceived += serialPort_DataReceived;
//adjustScreenBrightness(30);
label1.Text = "串口打开成功";
label1.Text = "开始建立握手";
handshake();
//serialPort.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
serialPort.Close();
}
}
private void handshake()//建立握手
{
try
{
if (serialPort.IsOpen)
{
byte[] data1 = new byte[6];
data1[0] = 0xAA;
data1[1] = 0x00;
data1[2] = 0xCC;
data1[3] = 0x33;
data1[4] = 0xC3;
data1[5] = 0x3C;
serialPort.Write(data1, 0, 6);
}
else
{
label1.Text = "串口在发送握手时被关闭";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
serialPort.Close();
}
}
private void adjustScreenBrightness(Int32 brightness)//调节屏幕亮度
{
if (serialPort.IsOpen)
{
byte[] data1 = new byte[7];
data1[0] = 0xAA;
data1[1] = 0x5F;
data1[2] = Convert.ToByte(brightness);
data1[3] = 0xCC;
data1[4] = 0x33;
data1[5] = 0xC3;
data1[6] = 0x3C;
serialPort.Write(data1, 0, 7);
}
else
{
label1.Text = "串口在调节亮度时发现被关闭";
}
}
void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
serialPort.DataReceived -= serialPort_DataReceived;
if (serialPort.IsOpen)
{
try
{
Byte[] receivedData = new Byte[serialPort.BytesToRead]; //创建接收字节数组
serialPort.Read(receivedData, 0, receivedData.Length); //读取数据
serialPort.DiscardInBuffer(); //清空SerialPort控件的Buffer
string strRcv = null;
for (int i = 0; i < receivedData.Length; i++) //窗体显示
{
strRcv += receivedData[i].ToString("X2"); //16进制显示
}
if (strRcv == "AA004F4B35020101CC33C33C")
label1.Text = "握手建立成功";
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message, "出错提示");
serialPort.Close();
}
}
else
{
label1.Text = "串口在握手返回时被关闭";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
serialPort.Close();
}
}
- C#实现串口通信(自身留稿方便以后查看)
- C#实现串口通信
- C#实现串口通信编程
- 一些好贴的链接(方便以后查看)
- 简单的Linux下的socket通信,小程序,方便以后查看。
- C#结合串口通信类实现串口通信源代码
- C#结合串口通信类实现串口通信源代码
- C#结合串口通信类实现串口通信源代码
- C#结合串口通信类实现串口通信源代码
- 串口通信(C#实践)
- C#中要实现串口通信
- 在C#中实现串口通信
- 在C#中实现串口通信
- 在C#中实现串口通信
- 在C#中 API 实现串口通信
- C#串口通信 实现打印功能
- C#实现PC和Arduino串口通信
- list_entry Head_list 模拟一下,方便以后查看
- UVA 12169 Disgruntled Judge (拓展欧几里德)
- 基本的bash shell命令
- HasHashMap会出现性能问题的情况
- 在Node.js中使用TCP套接字编程
- 带你从源代码详细分析View的绘制过程
- C#实现串口通信(自身留稿方便以后查看)
- php: 类常量,静态属性,动态属性 区别
- ffmpeg无损合并视频的多种方法
- HashMap源码分析以及四种遍历方法
- 个人总结——一些凌乱代码的使用
- 公交时间预测线性回归模型
- Android开发屏幕适配方案
- [Android]Context泄露之谜:Handle & 内部类
- 1.Spring基本用法