小编ABH*_*ABH的帖子

串口通信错误,"请求的资源正在使用中."

这是从串行端口读取数据的代码.为了简单起见,让我们点按一下按钮;

    private System.IO.Ports.SerialPort serialPort;

    private void button1_Click(object sender, EventArgs e)
    {
        if (serialPort == null)
            serialPort = new SerialPort("COM7", 4800, Parity.None, 8, StopBits.One);
            //COM7 is hard coded just for the sake of example

        if (!serialPort.IsOpen)
            serialPort.Open();

        textBox1.AppendText(serialPort.ReadExisting());
    }
Run Code Online (Sandbox Code Playgroud)

除非笔记本电脑进入睡眠状态,否则代码运行完全正常 当系统唤醒后从睡眠状态中,serialPort对象不是null,但serialPort.IsOpen回报false,我得到的错误,"请求的资源正在使用中." 一边打电话serialPort.Open().内部异常中没有任何内容.在此输入图像描述

我已经尝试过很多关于serialPort对象的事情,比如关闭,处理或显式地将它分配给null和重新初始化,但它没有用,每次都在同一行上出现相同的错误.

        if (!serialPort.IsOpen)
        {
            try
            {
                serialPort.Open();
            }
            catch
            {
                serialPort.Close();
                serialPort.Dispose();
                serialPort = null;

                serialPort = new SerialPort("COM7", 4800, Parity.None, 8, StopBits.One);
                serialPort.Open();
            }
        } …
Run Code Online (Sandbox Code Playgroud)

c# serial-port winforms

14
推荐指数
1
解决办法
4152
查看次数

标签 统计

c# ×1

serial-port ×1

winforms ×1