C#_串口调试助手-扫描可用串口

首先使用的是扫描串口号的方式去扫描可用串口,扫描20个串口,并尝试打开此串口,如果可以打开则说明此串口可用,添加到列表否则错误跳过

但是会造成当已经打开过某个串口将无法扫描到,不是很可取

private void USART_Scan(SerialPort MyPort, ComboBox MyBox)
{
    string Buffer;                       //判断当前查询的串口号是否可用
    int Count = 0;                       //记录当前查询到的可用串口号个数
    comboBox1.Items.Clear();             //清空ComboBox显示内容 
    for (int i = 1; i < 20; i++)
    {
        Buffer = "COM" + i.ToString();  //转换串口号
        MyPort.PortName = Buffer;       //赋值串口号
        try
        {
            MyPort.Open();                  //尝试打开串口
            MyBox.Items.Add(Buffer);        //添加项目到ComboBOX
            MyPort.Close();                 //关闭串口
            if (Count == 0) { Count = 1; comboBox1.Text = Buffer; }
        }
        catch
        {
            if (MyPort.IsOpen)
            {
                MyBox.Items.Add(Buffer);        //添加项目到ComboBOX
                if (Count == 0) { Count = 1; comboBox1.Text = Buffer; }
            }
        }
    }
}

其次是直接获取系统存在的串口列表,可以保证所有打开未打开的都可以获取到,目前这钟比较好使,又快

private void USART_Scan(SerialPort MyPort, ComboBox MyBox)
{
    comboBox1.Items.Clear();  //清空ComboBox显示内容
    //得到当前串口号 
    string[] Serial_Name = SerialPort.GetPortNames();
    if (Serial_Name.Length > 0)
    {
        Array.Sort(Serial_Name);  //排序
        comboBox1.Items.AddRange(Serial_Name);
    }
    //如果当前有项目则默认填充第一个
    if (comboBox1.Items.Count != 0)
    {
        comboBox1.SelectedIndex = 0;
    }
}

更重要的是可以实现实时扫描可用串口,方法也比较简单,思路就是我们每次点击下拉框切换串口时扫描一次

只需要双击Click 后面的空白区域,即可自动生成事件函数

然后将扫描串口的函数放在里面,不过由于每次点击都会扫描,所以会有轻微卡顿,串口数量特别多没有怎么测试,三四个问题不大 +-+

个人见解,感谢阅读。

要编写一个C#串口调试助手,你可以按照以下步骤进行开发: 1. 确定你想要实现的功能,并设计界面。你可以使用Visual Studio的Winform来创建一个窗体应用程序。\[1\] 2. 设置串口参数。在你的应用程序中,你需要设置串口的波特率、数据位、停止位和校验位等参数,以便与硬件进行通信。\[3\] 3. 编写事件处理器。根据你的设计,为每个组件编写相应的事件处理器。例如,当点击发送按钮时,你需要将文本框中的数据发送出去。确保你清楚每个组件会触发什么事件,并实现相应的功能。\[3\] 4. 进行测试和调试。在编写完每个组件的事件处理器后,及时编译和运行你的应用程序,以便及早发现和解决问题。\[3\] 通过按照以上步骤进行开发,你可以编写一个简单的C#串口调试助手。如果你想学习更多关于Winform的知识,你可以点击链接学习。\[2\] #### 引用[.reference_title] - *1* *2* [C#开发串口调试助手的详细教程](https://blog.csdn.net/weixin_49959955/article/details/123653122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [C#实现【串口助手】【入门级别】【小白进】](https://blog.csdn.net/qq_43535543/article/details/127702042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值