我正在使用安装了 TComPort 组件和 Arduino 的 C++ Builder 6。我想做的事情如下:
for (int a = 0; a < n; a++){
Edit1->Text = "first";
ComPort->WriteString("a");
//wait till process on Arduino is finished
//receive char from Arduino and continue
Edit1->Text = "scnd";
ComPort->WriteString("b");
//wait till process on Arduino is finished
}
Arduino代码(案例):
case 'b':
digitalWrite(ledPin2, HIGH);
delay(1000);
Serial.write('2');
digitalWrite(ledPin2, LOW);
break;
我试图使用 OnRxChar 但从 Arduino 接收字符串时出现问题。有时它们是“空白的”,有时它们是正确的(2)。有人可以指导我什么是我可以使用的最佳功能吗?
编辑: ComPort 有一个功能,Read(void *,int,bool)
但我不知道代表什么(我是新手)。void*
int
编辑2:解决方案! 这就是我所做的:
第一个功能;Timer1->启用=假;{指示}; ComPort->Write('a');
第二个函数 OnRxChar;{指示}; Timer1->启用=真;
第三功能定时器;返回第一个功能
当我使用 Sleep 而不是 Timer 时,整个应用程序冻结。我希望它对某人有用:)我花了大约一周的时间来弄清楚:P