• 界面设计
  • 事件处理

本文参考串口助手(简洁版)上位机软件零基础教程( C# + visual studio2017 )(一)_visual studio hmi教程-CSDN博客

1、完成如下界面一共需要Lable、ComboBox、TextBox、Button四个普通组件,两个特殊组件,一个是SerialPort特殊控件,它是处理串口通信用的一个组件。另一个是Timer组件,这是个定时器组件。

新建C#项目,选择Windows窗体应用

默认创建一个空白窗体

你可以随便在左侧的工具箱里面找一些控件拖进右侧的空白窗体里面

按crtl+s保存好之后点击启动按钮,将会出现刚才设计的窗体

然后用左边的工具箱随便摆摆控件,变成如下样子

重点来了

ComboBox的下拉菜单数据填充有两种方式,第一种,右键ComboBox属性菜单出现属性,选择Items属性,


第二种,在代码中添加

ComboBox默认选择行可以采用SelectedIndex属性值来设置。

ComboBox.SelectedIndex = 0 就是默认选中第一个。

剩下的Lable、TextBox、Button设置文本都是统一属性Text,Lable.Text、TextBox.Text、Button.Text

以上界面问题搞定好之后就需要对Button进行点击事件绑定了。

绑定事件函数的生成需要双击Button按钮,将会自动生成以Button的id为头部的一个click函数,比如Button的id为button6那么这个点击事件函数就是button6_Click

这里举一个例子是给打开串口按钮绑定打开串口事件,首先双击“打开串口”按钮,将会生成按钮单击事件,这时就需要进行串口配置,串口配置有PortName,BaudRate,DataBits,Parity,StopBits五个参数。波特率在ComboBox中是以字符串形式呈现的,所以需要转化为Int整数类型Convert.ToInt32()。

serialPort1.PortName = comboBox1.Text;                       
serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text); 
serialPort1.DataBits = Convert.ToInt16(comboBox4.Text);

if (comboBox3.Text.Equals("None"))
     erialPort1.Parity = System.IO.Ports.Parity.None;
else if (comboBox3.Text.Equals("Odd"))
     serialPort1.Parity = System.IO.Ports.Parity.Odd;
else if (comboBox3.Text.Equals("Even"))
     serialPort1.Parity = System.IO.Ports.Parity.Even;
else if (comboBox3.Text.Equals("Mark"))
     serialPort1.Parity = System.IO.Ports.Parity.Mark;
else if (comboBox3.Text.Equals("Space"))
     serialPort1.Parity = System.IO.Ports.Parity.Space;
if (comboBox5.Text.Equals("1"))
     serialPort1.StopBits = System.IO.Ports.StopBits.One;
else if (comboBox5.Text.Equals("1.5"))
     serialPort1.StopBits = System.IO.Ports.StopBits.OnePointFive;
else if (comboBox5.Text.Equals("2"))
     serialPort1.StopBits = System.IO.Ports.StopBits.Two;
serialPort1.Open();

串口写的代码如下

byte[] data = {0x01, 0x02, 0x03, 0x09};
for (int i = 0; i < data.length) {
    serialPort1.Write(data, i, 1);
}

串口读的代码如下

int length = serialPort1.BytesToRead;    // 读取串口接收缓冲区字节数
byte[] data = new byte[length];          //定义相同字节的数组
serialPort1.Read(data, 0, length);

Demo下载 https://download.csdn.net/download/niuyong_10086/12901679

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐