最近自己闲着 自学了C# ,本人不是搞软件的 ,搞嵌入式的 ,经常要用串口调试工具来调试 ,有时候还要处理一些数据但是市面上的不能满足我的要求 ,正好一个项目需要学习C#,借此机会来开发一个串口  ,说不定对我也有用!

话不多说先看看成果!

c# 简单的串口通信 新手篇

串口调试工具 功能:

   通过串口设置设置相应的参数  ,串口检测  检测插上的串口号 ,发送与接收数据,HEX显示 ,定时发送,文件保存。

1.在vs2017 菜单栏点击 文件  -> 新建项目, 创建c#下的 windows窗体应用:

c# 简单的串口通信 新手篇

在窗体上添加四个  “GroupBox”控件 ,分别将窗体分为“串口设置”,“数据接收”,“数据发送”,”文件操作“。

添加若干个"Label”和"ComboBOX”   ,添加两个" RodioButton  " 给字符与HEX  选择,添加若干个 “Button” 

发送与接收 添加 TextBox 控件。

不说了上代码!

c# 简单的串口通信 新手篇

设置一下标志位与 Form1 初始化。

c# 简单的串口通信 新手篇

c# 简单的串口通信 新手篇

串口检测 界面初始化

  •  
  • c# 简单的串口通信 新手篇​​​​​​​

  private void SetPortProperty () //  设置串口名
        {
            sp = new SerialPort();
            sp.PortName = cbxComPort.Text.Trim();                //设置串口名
            sp.BaudRate = Convert.ToInt32(cbxBaudRate.Text.Trim());  //设置串口波特率
            float f = Convert.ToSingle(cbxStopBits.Text.Trim());     //设置停止位
            if(f==0)
            {
                sp.StopBits = StopBits.None;
            }
            else if(f==1)
            {
                sp.StopBits = StopBits.One;
            }
            else if(f==1.5)
            {
                sp.StopBits = StopBits.OnePointFive;
            }
            else if (f == 2)
            {
                sp.StopBits = StopBits.Two;
            }
            else
            {
                sp.StopBits = StopBits.One;
            }


            sp.DataBits = Convert.ToInt16(cbxDataBits.Text.Trim()); //设置数据位

            string s = cbxParity.Text.Trim();                //设置奇偶校验
            if (s.CompareTo("无") == 0)
            {
                sp.Parity = Parity.None;
            }
            else if (s.CompareTo("奇校验") == 0)
            {
                sp.Parity = Parity.Odd;
            }
            else if (s.CompareTo("偶校验") == 0)
            {
                sp.Parity = Parity.Even;
            }
            else
            {
                sp.Parity = Parity.None;
            }

            sp.ReadTimeout = -1;     //  设置超时读取时间
            sp.RtsEnable = true;

            // 定义Data Received 事件 ,  当串口收到数据后触发事件
            sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
            if (rbnHex.Checked)
            {
                isHex = true;
            }
            else
            {
                isHex = false;
            }

           

        }

c# 简单的串口通信 新手篇

c# 简单的串口通信 新手篇c# 简单的串口通信 新手篇

c# 简单的串口通信 新手篇

c# 简单的串口通信 新手篇

上面3图  发送 数据      清除数据   打开文件

c# 简单的串口通信 新手篇

发送文件

c# 简单的串口通信 新手篇

c# 简单的串口通信 新手篇

定时发送

 

上面代码都是自己写的如果那里有不足之处还请多多指教   ,如果觉得对你有帮助就关注一下。

 

相关文章: