Arduino串行通信无法读取整数
我使用以下代码从Arduino Arduino Mega 2560串行通信中读取整数序列 但它给了我垃圾或错误的值,请帮我找出错误Arduino串行通信无法读取整数,arduino,Arduino,我使用以下代码从Arduino Arduino Mega 2560串行通信中读取整数序列 但它给了我垃圾或错误的值,请帮我找出错误 int time=0,i; void setup() { pinMode(6,OUTPUT); Serial.begin(9600); } void loop(){ i=0; while(Serial.available()>0) { time=Serial.parseInt(); } for(i=1;i<=time;i
int time=0,i;
void setup() {
pinMode(6,OUTPUT);
Serial.begin(9600);
}
void loop(){
i=0;
while(Serial.available()>0) {
time=Serial.parseInt();
}
for(i=1;i<=time;i++){
digitalWrite(6,1);
delay(150);
digitalWrite(6,0);
delay(100);
}
time=0;
}
你的代码错了。或者至少逻辑是错误的 试试这个:
void loop(){
if(Serial.available()) {
time=Serial.parseInt();
for(i=1;i<=time;i++){
digitalWrite(6,1);
delay(150);
digitalWrite(6,0);
delay(100);
}
time=0;
}
}
您的代码看起来应该可以工作,但问题可能出在您发送的数据中 Serial.parseInt需要表示数字的ascii字符。您发送的是编码为字符字符串的数字吗?请注意,Serial.write99将发送一个值为99的字节 由于数字的范围在0到99之间,因此它们将放在一个字节中。为什么不发送一个字节并读取另一端的字节
void setup() {
pinMode(6,OUTPUT);
Serial.begin(9600);
}
void loop(){
int time=0;
if(Serial.available()>0) { // using while will read all the bytes and use the last one
time = Serial.read();
}
for(int i=1; i<=time; i++){
digitalWrite(6,1);
delay(150);
digitalWrite(6,0);
delay(100);
}
}
你向Arduino发送了什么数据?数字的范围是什么?都是1-99之间的整数