c# - Unity无法打开COM口

标签 c# serial-port unity3d

我正在使用 arduino 板将串行数据传送到 Unity。我使用电路板随附的读取模拟电压样本以及调试日志中愉快显示的输出来完成这项工作。

但是,现在当我运行 Unity 时出现以下错误:

IOException: The port `COM11' does not exist.

我已将我的 COM 端口更改为各种数字,但它们都返回相同的错误。

我的串口读取代码是这样的:

SerialPort stream = null;
string data = "Ready";


private float DataTimer = 2.0f;
private float TimeToCheckStream = 0.1f; // check data every second
public string COMPort = "";
public int baudRate = 9600;



void Awake ()
{       

    stream = new SerialPort(COMPort,baudRate); //originally 9600
    Debug.Log ("Initialized stream");

    LogWriter writer = LogWriter.Instance;
    writer.WriteToLog( COMPort);
}



void Start ()
{
//  LogWriter writer = LogWriter.Instance;
//  writer.WriteToLog("Testing test");

        if ( stream != null )
        {
            if ( stream.IsOpen ) // close if already open
            {
                stream.Close();
                Debug.Log ("Closed stream");
            }

            stream.Open();
            Debug.Log ("Opened stream");
        }

        else
        {
            Debug.Log ("ERROR: Uninitialized stream");
        }

}


void Update ()
{

    if(DataTimer < TimeToCheckStream) 
    {
        DataTimer += Time.deltaTime;
    } 
    else
    {
        DataTimer = 0.0f;

        if ( stream != null )
        {
            if ( stream.IsOpen )
            {
                // if stream is open do things in here
                stream.ReadLine();
                Debug.Log(stream.ReadLine().ToString());
            }
        }

        else
        {
            Debug.Log ("NULL stream");
        }
    }
}



void OnGUI ()
{
    GUI.Label ( new Rect(500,10,300,100), data );
}



void OnApplicationQuit ()
{       

    if ( stream != null )
    {
        stream.Close();
    }
}

为什么我的 COM 端口会突然决定自行关闭?

最佳答案

您可以访问您的 COM11 并将其替换为 \\.\COM11 你必须写:

myPort= new SerialPort("\\\\.\\COM11",9600);

看看Microsoft's Website

关于c# - Unity无法打开COM口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18790411/

相关文章:

c# - 帮助分析软件/程序如何构建贝塞尔曲线

c# - 关于c#并行化的几个问题

c# - 初始化实例变量

c# - 无限循环 : while(Time. time < Time.time + 5f)

c# - 如何正确地将浮点指针从 C 库传递到其 C# 包装器

c# - 如何正确地继续将多个脚本添加到游戏对象

c# - 带 *.js 的 URL 的 WebApi 属性路由

linux - TTY 输入队列太慢无法返回数据

serial-port - Arduino 串行输出丢弃字符

c - 非规范(原始)模式下的异步串行通信并在 linux/osx 中生成 SIGIO