2.3-使用C#Winform开发串口小助手开发步骤

一、界面设计

在做软件之前使用“软件界面设计工具”先设计并绘制出软件界面,方便在写代码之前确认“功能需求”以及“交互流程”。
这里使用的软件是:“Axure RP”
在这里插入图片描述

二、新建工程与绘制界面

  1. 新建工程:
    使用任意一个Visual studio即可,这里使用Visual studio2017作为开发环境(安装的时候选择.net桌面开发)。新建工程选择“c# winform类型的工程,然后填写工程名字即可完成工程创建”。如下图所示:
    在这里插入图片描述
  2. 绘制图形界面:
    鼠标单击打开“From1.cs”文件,会出现界面绘制界面。点击软件左侧栏的“工具栏”弹出界面控件列表,选择要绘制的控件拖动到软件绘制界面,并调整控件位置,直到达到设计图所设计的样子。如下图所示:
    在这里插入图片描述
  3. 添加按钮按下相应函数:
    选中按钮并使用右键点击“属性”,从而打开这个按钮的属性配置窗口,在窗口里可以设置很多属性,切换到事件配置页面(闪电图标)即可编辑与此控件相关的事件。在“事件配置页面”即可给按钮添加点击事件响应函数,如下图所示:
    在这里插入图片描述

三、用到的库函数说明

用到了.net的类为:“SerialPort”。这个类中常用的函数说明如下:
“SerialPort”类的官方文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.io.ports.serialport?view=netframework-4.8

  • 公有成员函数
    Open();//打开串口设备
    Close();//关闭串口设备
    int Write (byte[] buffer, int offset, int count);//给串口写数据
    int Read (byte[] buffer, int offset, int count);//从串口读数据
  • 公有成员变量
    IsOpen //串口设备是否打开
    ComDevice.PortName //设置或读取串口名称
    ComDevice.BaudRate //设置或读取波特率
    ComDevice.DataBits //设置或读取数据位
    ComDevice.Parity //设置或读取校验位
    ComDevice.StopBits //设置或读取停止位

四、核心编写逻辑代码

.net提供了串口编程函数类,为了避免把逻辑代码和界面代码混合编写。这里给串口相关操作函数做了二次封装。界面代码只要调用二次封装的类,即可完成串口通信。

  1. 逻辑代码
    二次封装需要新定义一个类,使用Visual Studio添加自定义类方法如下图所示:
    在这里插入图片描述
    填写类名字:
    在这里插入图片描述
    新建完类后,在类中编写如下代码(简化展示,详情查看源代码):
namespace winform_serial_port_gui_tool
{
   
public delegate void RecvListener(byte[] data, int length); //定义一个委托

    class SerialComm
    {
   
        private SerialPort ComDevice;
        private static SerialComm mInstance = null;
        private RecvListener recvListener = null;

        
        public SerialComm()
        {
   
            ComDevice = new SerialPort();
        }

        public void SetRecvListener(RecvListener listener)
        {
   
            recvListener = listener;
        }

        public bool Open()
        {
   
            try
            {
   
                Console.WriteLine("##### open serial port");
                ComDevice.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived);
                ComDevice.Open();
                if (ComDevice.IsOpen == true)
                {
   
                    return true;
                }
            }
            ca
  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值