C# 从Arduino到Unity的USB通信:超时错误
我试图在Arduino和Unity 3D之间建立尽可能简单的USB通信:从Arduino发送几个字节,然后从Unity读取 我正在使用一个旧的MBP,Unity 4.6.6,以及一个Arduino Uno和Arduino 1.0.6 Arduino:C# 从Arduino到Unity的USB通信:超时错误,c#,macos,unity3d,arduino,usb,C#,Macos,Unity3d,Arduino,Usb,我试图在Arduino和Unity 3D之间建立尽可能简单的USB通信:从Arduino发送几个字节,然后从Unity读取 我正在使用一个旧的MBP,Unity 4.6.6,以及一个Arduino Uno和Arduino 1.0.6 Arduino: void setup() { Serial.begin(9600); } void loop() { int val=45; Serial.write(val); delay(10); } using UnityEn
void setup() {
Serial.begin(9600);
}
void loop() {
int val=45;
Serial.write(val);
delay(10);
}
using UnityEngine;
using System.Collections;
using System.IO.Ports;
public class ardCom : MonoBehaviour {
SerialPort stream = new SerialPort("/dev/tty.usbmodem621",9600);
// Use this for initialization
void Start () {
stream.Open ();
}
// Update is called once per frame
void Update () {
int value = stream.ReadByte ();
Debug.Log (value);
}
void OnApplicationQuit()
{
stream.Close();
}
}
统一:
void setup() {
Serial.begin(9600);
}
void loop() {
int val=45;
Serial.write(val);
delay(10);
}
using UnityEngine;
using System.Collections;
using System.IO.Ports;
public class ardCom : MonoBehaviour {
SerialPort stream = new SerialPort("/dev/tty.usbmodem621",9600);
// Use this for initialization
void Start () {
stream.Open ();
}
// Update is called once per frame
void Update () {
int value = stream.ReadByte ();
Debug.Log (value);
}
void OnApplicationQuit()
{
stream.Close();
}
}
但是……Unity不断抛出超时错误:
TimeoutException:操作已超时。
System.IO.Ports.SerialPortStream.Read(System.Byte[]缓冲区,Int32
偏移量,Int32计数)System.IO.Ports.SerialPort.read_字节()
System.IO.Ports.SerialPort.ReadByte()(包装器
远程调用检查)System.IO.Ports.SerialPort:ReadByte()
Update()(位于Assets/ardCom.cs:20)
奇怪的是,我能够以另一种方式进行沟通,从Unity到Arduino——你们的老Blinky LED教程很好用
我尝试了我能想到的每一种代码排列,改变波特率、延迟时间、对Arduino和Unity代码的串行写入和读取调用,并在网络上寻找解决方案。不走运