通过串口控制舵机不能实现
想通过串口控制舵机,把串口中的字符串存到数组中,然后通过strtol把字符串转换成10进制,但我在串口依次输入5个数,分别是1,10,200,1,10,但结果却是为什么输入一个三位数后,后面如果在串口中输入一位或两位数,它就会自动补零呢,我的程序如下,
#include <Servo.h>
char buffer;
int value=0;
Servo myservo;
void setup() {
Serial.begin(9600);
Serial.flush();
myservo.attach(5);//定义伺服马达输出第5脚位
myservo.write(90);
}
void loop() {
if(Serial.available()>0){
delay(200);
int index=0;
int num=Serial.available();
if(num>4){
num=4;
}
while(num--){
buffer=Serial.read();
}
Serial.println(buffer);
/*
value=strtol(buffer,NULL,10);
value=constrain(value,0,179);
myservo.write(value);
delay(15);
Serial.println(value);
*/
}
}
帮顶 看不懂{:5_172:} 你没有对BUF数组清零
页:
[1]