- KopSoftTool 条形码二维码标签编辑打印软件,C#串口通信SerialPort
- 官网 http://kopsoft.cn/
- github源码 https://github.com/williamyang1984/KopSoftTool
- gitee源码 https://gitee.com/william_yang/KopSoftTool
C#串口通信SerialPort
串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485 RXD 接收数据 Receive Data TXD 发送数据 Transmit Data SGND 信号接地 Signal Ground
public KopSoftSerialPort() { InitializeComponent(); //获取串口 cbPortName.Items.AddRange(SerialPort.GetPortNames()); if (cbPortName.Items.Count > 0) { cbPortName.SelectedIndex = 0; } cbBaudRate.SelectedIndex = 5; cbDataBits.SelectedIndex = 2; cbParity.SelectedIndex = 0; cbStopBits.SelectedIndex = 0; pictureBox1.Image = KopSoftTool.Properties.Resources.red; }
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
/// <summary> /// 打开串口 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOpen_Click(object sender, EventArgs e) { if (cbPortName.Items.Count <= 0) { MessageBox.Show("没有发现串口,请检查线路!"); return; } btnSend.Enabled = false; serialPort.Encoding = Encoding.GetEncoding("gb2312"); //解决串口接收中文乱码 if (serialPort.IsOpen == false) { serialPort.PortName = cbPortName.SelectedItem.ToString(); serialPort.BaudRate = Convert.ToInt32(cbBaudRate.SelectedItem.ToString()); serialPort.Parity = (Parity)Convert.ToInt32(cbParity.SelectedIndex.ToString()); serialPort.DataBits = Convert.ToInt32(cbDataBits.SelectedItem.ToString()); serialPort.StopBits = (StopBits)Convert.ToInt32(cbStopBits.SelectedItem.ToString()); try { serialPort.Open(); btnSend.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } btnOpen.Text = "关闭串口"; pictureBox1.Image = KopSoftTool.Properties.Resources.green; serialPort.DataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived); //绑定事件 } else { try { serialPort.Close(); btnSend.Enabled = false; } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } btnOpen.Text = "打开串口"; pictureBox1.Image = KopSoftTool.Properties.Resources.red; } }
public void UpdateRecevie(object NewData) { if (this.InvokeRequired) //等待异步 { UpdateString myInvoke = new UpdateString(UpdateRecevie); Invoke(myInvoke, new object[] { NewData }); } else { textBox2.AppendText(NewData.ToString()); //textBox2.SelectionStart = textBox2.Text.Length - 1; textBox2.ScrollToCaret(); } }