【发布时间】:2013-10-04 13:13:10
【问题描述】:
我正在尝试通过 popen() 函数与我的 Arduino 通信。我在 XCode 中编写了一个简单的 Mac App:
- (IBAction)ButtonPressed:(id)sender {
popen("echo hello world > /dev/tty.usbmodem1411", "r");
}
这是 Arduino 代码:
int redPin = 8;
int greenPin = 9;
int bluePin = 10;
int inByte = 0; // for incoming serial data
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(8000);
}
void loop()
{
if (Serial.available() > 0) {
// get incoming byte:
inByte = Serial.read();
Serial.print(inByte);
setColor(inByte,inByte,inByte);
delay(1000);
setColor(0,0,0);
}
}
void setColor(int red, int green, int blue)
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
现在,当我尝试使用 Arduino 串行监视器并在那里写一些乱码时,我的 LED 灯亮起,我看到它正在工作。当我运行我的 XCode 程序时,按下按钮,没有任何反应。我确实设置了断点,并且确实检查了代码行是否被执行。我仔细检查了串口,一切都很好,但没有运气。还是不行。
【问题讨论】:
-
你试过把
if改成while吗? -
我试过了,没有帮助。还是一样 - 串口工作,而 popen() 不工作。
-
你在命令行中试过
echo hello world > /dev/tty.usbmodem1411吗?