繁体   English   中英

尝试访问通信端口时 C# 访问被拒绝?

[英]C# access denied when trying to access communications port?

我正在尝试在 Visual Studios 中制作一个简单的 Windows 窗体应用程序,它允许我控制连接到 Arduino 的 LED 灯条的亮度设置。

Arduino 内部的编程已经很好并且已经完成,但是 C# 编程给我带来了麻烦。

尝试通过端口发送信息字符串时,我收到以下消息:

System.dll 中发生类型为“System.UnauthorizedAccessException”的未处理异常。 附加信息:拒绝访问端口“COM3”。

这是给我带来麻烦的一段代码:

  private void trackBar1_Scroll(object sender, EventArgs e)
    {    
        String color = trackBar1.Value.ToString();

        System.IO.Ports.SerialPort myPort = new System.IO.Ports.SerialPort("COM3");
        if (myPort.IsOpen == false){
         //if not open, open the port
            myPort.Open(); // Error is shown here.
        }
        if (myPort.IsOpen){
            myPort.WriteLine(color);
        }
    }

我没有包括任何端口的关闭,因为首先我想让它工作,我不明白发生了什么。 我很确定没有其他应用程序正在使用该端口; Arduino 通过 USB 插入它以接收它的电源,但除此之外,它不会从任何其他进程接收或传输。

我尝试将端口从 COM3 更改为其他端口,这是针对类似问题给出的主要解决方案之一,但仍然得到相同的结果。

谢谢您的帮助。

COM 端口上拒绝访问错误的最常见原因是 COM 端口已被某些其他程序打开。 您可以使用portmon来查看是哪个程序。 它很可能是您自己的程序,因为您从未正确关闭端口。

这在 NK 的评论之一中得到了回答:确保串行监视器不工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM