为了账号安全,请及时绑定邮箱和手机立即绑定

这段程序只有接收到D才运动,其他没反应,是哪里错了,求指教!

这段程序只有接收到D才运动,其他没反应,是哪里错了,求指教!

猛跑小猪 2022-07-14 16:11:41
void loop(){myservo.write(90);if( Serial.available() > 0){if(Serial.read() == 'D'){back(8);turnL(2);}if(Serial.read() == 'R'){back(1);turnR(6);}if(Serial.read() == 'L'){back(1);turnL(6);}if(Serial.read() == 'A'){advance(1);}}}
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞


void loop() { char c;  myservo.write(90);  if ( Serial.available() > 0 ) {    c=Serial.read();    switch ( c ) {      case 'D': back(8); turnL(2); break;      case 'R': back(1); turnR(6); break;      case 'L': back(1); turnL(6); break;      case 'A': advance(1); break;    }  }} 或者:

void loop() { char c;  myservo.write(90);  if ( Serial.available() > 0 ) {    c=Serial.read();     if ( c == 'D' ) { back(8); turnL(2); }     else if ( c == 'R') { back(1); turnR(6); }     else if ( c == 'L' ) { back(1); turnL(6); }     else if ( c == 'A' ) { advance(1); }     }}

原因:我估计Serial.read()不可以多次读取,前一次读取的如果不是D那么再读取就是下一个字符了,那么前一次读取的就不会被处理了


查看完整回答
反对 回复 2022-07-18
  • 1 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信