概要

winform适合入门学习嵌入式单片机调试的新手学习,学习成本低,容易快速上手,快速实现功能,解决问题。

整体架构流程

参考流行串口调试助手UI框架,快速实现串口通信。主要是先要工具功能,确定UI结构层次。然后根据功能要求实现对应串口通信的收发,数据保存等等功能。

UI框架介绍

UI框架
上面是窗体框的上边框样式,
具体参考文章《winform自定义窗体边框样式模板(支持四周边框拖拽改变窗体大小,支持鼠标拖动头部移动窗体)》:https://blog.csdn.net/qq_42063091/article/details/93889165
下面是一个tabControl控件,tabpage里面用splitcontainer当容器,放置控件如图所示。
使用控件有如下,有不了解的问ai相关属性

  • 组合框 (ComboBox): 用于选择串口和波特率设置。
  • 文本框 (TextBox): 用于输入数据,如发送内容和周期时间。
  • 单选按钮 (RadioButton): 选择数据格式(ASCII或HEX)。
  • 单选按钮 (RadioButton): 选择数据格式(ASCII或HEX)。
  • 按钮 (Button): 用于执行操作,例如“清空”、“保存”和“发送”。
  • 标签 (Label): 显示各个设置的说明文字。
  • 检查框 (CheckBox): 可能用于设置是否启用某些选项,如时间戳。

串口接收

双击serialPort控件,会产生这个串口接收事件

  private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
  {
      Thread.Sleep(50);

      byte[] rxbuf = new byte[16];
      int bytesRead = serialPort.Read(rxbuf, 0, 16);

      if (radioButton1.Checked == true) 
      {
          string hexData = BitConverter.ToString(rxbuf, 0, bytesRead).Replace("-", " ");
          try
          {
              //string receivedData = serialPort.ReadLine();  // 读取串口数据
              Invoke(new Action(() =>  // 在UI线程中更新控件
              {
                  richTextBox1.AppendText("->" + hexData + Environment.NewLine);
              }));
          }
          catch (Exception ex)
          {
              MessageBox.Show("接收数据时出错: " + ex.Message);
          }
      }
      else
      {
          string receivedData = System.Text.Encoding.ASCII.GetString(rxbuf, 0, bytesRead);
          try
          {
              //string receivedData = serialPort.ReadLine();  // 读取串口数据
              Invoke(new Action(() =>  // 在UI线程中更新控件
              {
                  richTextBox1.AppendText("->" + receivedData + Environment.NewLine);
              }));
          }
          catch (Exception ex)
          {
              MessageBox.Show("接收数据时出错: " + ex.Message);
          }

      }
  }

下图分别是ASCII码格式和HEX格式接收显示
ASCII

在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐