我要做的是查询Arduino以获取数据。当我从Python向Arduino发送命令时,Arduino将根据查询关键字返回一些数据。我可以这样做,但速度很慢,我希望有一个更有效的方法来做到这一点,例如,查询至少每秒100次。有什么想法吗?谢谢!在
我使用的代码:
Arduino公司:
int temp=1;
char s[2];
int speedIn=0;
void setup() {
Serial.begin(115200);
}
void loop() {
if(Serial.available()>0){
Serial.readBytes(s,1);
speedIn=int(s[0]);
if(speedIn==49){
Serial.println(">Data1Send<");
speedIn=0;
}
else if(speedIn==50){
Serial.print(">");
Serial.print(temp);
Serial.println("<");
speedIn=0;
}
else{
Serial.println(">Wrong Data<");
speedIn=0;
}
}
if(temp<300){
temp=temp+1;
}
//delay(100);
}
Python:
^{pr2}$如果我将Python中的时间延迟从1.0秒更改为0.1秒,它将不再工作(无法接收数据,只是处于等待状态)。在
看起来您的python代码会执行以下操作:
你说过如果睡眠时间太短就不行了。我想知道是否会发生以下情况。想象一下没有睡眠期。python代码将立即检查是否有应答,因为arduino没有时间响应,所以可能不存在。在这种情况下,它将立即尝试发送另一个命令。这种情况可能会反复发生,python代码实际上可能会用arduino无法跟上的请求充斥整个行。您可以使用休眠期来防止这种情况的发生,但是睡眠期可能比arduino实际需要的时间长,这会降低数据传输率。在
如果是这样的话,可以改为在python代码中执行此操作:
相关问题 更多 >
编程相关推荐