📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.IO.Ports;
using System.Threading;
using System.Deployment;
namespace serialCommDotNetCF2
{
public partial class Form1 : Form
{
string receivedData;
public Form1()
{
InitializeComponent();
}
private void menuItem1_Click(object sender, EventArgs e) // sending
{
serialPort1.Write(textBox1.Text);
ReceiveData(serialPort1);
textBox2.Text = receivedData;
}
private void menuItem3_Click(object sender, EventArgs e) // connecting
{
serialPort1.Open();
}
private void menuItem4_Click(object sender, EventArgs e) //exit
{
serialPort1.Close();
this.Close();
}
private void SendStringData(SerialPort serialPort)
{
serialPort.Write(textBox1.Text);
ReceiveData(serialPort1);
}
private void ReceiveData(SerialPort serialPort)
{
//同步阻塞接收数据线程
System.Threading.Thread.Sleep(0);
serialPort.ReadTimeout = 4000;
try
{
//阻塞到读取数据或超时(这里为4秒)
byte firstByte = Convert.ToByte(serialPort.ReadByte());
int bytesRead = serialPort.BytesToRead;
byte[] bytesData = new byte[bytesRead + 1];
bytesData[0] = firstByte;
for (int i = 1; i <= bytesRead; i++)
bytesData[i] = Convert.ToByte(serialPort.ReadByte());
receivedData = System.Text.Encoding.Default.GetString(bytesData, 0, bytesRead);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
//处理超时错误
}
serialPort1.Write("sync");
//serialPort.Close();
}
//同步阻塞读取
/* private void SynReceiveData(object serialPortobj)
{
SerialPort serialPort = (SerialPort)serialPortobj;
System.Threading.Thread.Sleep(0);
serialPort.ReadTimeout = 4000;
try
{
//阻塞到读取数据或超时(这里为4秒)
byte firstByte = Convert.ToByte(serialPort.ReadByte());
int bytesRead = serialPort.BytesToRead;
byte[] bytesData = new byte[bytesRead + 1];
bytesData[0] = firstByte;
for (int i = 1; i <= bytesRead; i++)
bytesData[i] = Convert.ToByte(serialPort.ReadByte());
receivedData = System.Text.Encoding.Default.GetString(bytesData, 0, bytesRead);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
//处理超时错误
}
serialPort1.Write("sync");
//serialPort.Close();
}*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -