串口数据收发
if (serialPort1.IsOpen == true) //发送
{
serialPort1.Write("1"); //发送字符
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) //串口接收
{
String[] arr1 = new string[1]; //定义文本数组
String testTS; //文本变量
testTS = serialPort1.ReadExisting(); //获取串口缓冲区所有字符
arr1 = testTS.Split(','); //分割字符串
if (arr1.Length > 2 && arr1[0] == "Data") //简单判断数据协议
{
try
{
TextBox1.Text = arr1[1]; //解析数据流数据
TextBox2.Text = arr1[2];
if (Convert.ToInt32(arr1[3]) == 1) //文本转字符串
{
TextBox2.BackColor = Color.Green;
}
else
{
TextBox2.BackColor = Color.White;
}
}
catch
{
MessageBox.Show("数据异常!", "提示"); //消息提示
}
}
}
窗口缩放设置
调整窗口显示格式 关闭窗口被拖拽
关闭最大化图标
解决线程间操作无效
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; //解决线程间操作无效
设置串口文本编码方式
serialPort1.Encoding = Encoding.GetEncoding("GB2312"); //设置串口文本编码方式
获取计算机可用COM口
ComboBox1.DataSource = SerialPort.GetPortNames(); //获取计算机可用COM口
设置ComboBox1下拉框默认值为最后一个为选择项。
ComboBox1.SelectedIndex = ComboBox1.Items.Count - 1; //设置最后一个为默认选择项。
MessageBox提示
MessageBox.Show("未检测到串口设备", "提示!");