7674| 3
|
[求助] 通过串口控制舵机不能实现 |
想通过串口控制舵机,把串口中的字符串存到数组中,然后通过strtol把字符串转换成10进制,但我在串口依次输入5个数,分别是1,10,200,1,10,但结果却是 为什么输入一个三位数后,后面如果在串口中输入一位或两位数,它就会自动补零呢,我的程序如下, [mw_shl_code=applescript,true]#include <Servo.h> char buffer[4]; 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[index++]=Serial.read(); } Serial.println(buffer); /* value=strtol(buffer,NULL,10); value=constrain(value,0,179); myservo.write(value); delay(15); Serial.println(value); */ } } [/mw_shl_code] |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed