2013-11-20 17:40:29 [显示全部楼层]
5872浏览
查看: 5872|回复: 3

[已解决] 同样的代码,UNO上可以运行,mega2560上没有反应?

[复制链接]
今天有位客户遇到这么个问题——同样的代码,在UNO上可以运行,而在mega2560上则没有反应,为什么?
以下是烧录代码:
  1. #include <MotorCar.h>
  2. MotorCar Motor(5,4,6,7);
  3. int val=0;
  4. void setup() {   
  5.      Serial.begin(9600);
  6. }
  7. void loop() {
  8.      performCommand();
  9. }
  10. void performCommand() {   
  11.     if (Serial.available()) {
  12.     val = Serial.read();
  13.     }
  14.     if (val == 'f') {           // Forward
  15.    Motor.forward(250);
  16.     } else if (val == 'b') {    //  backward     
  17.    Motor.back(250);
  18.     } else if (val == 'l') {     //  Left
  19.    Motor.turnLeft(250);
  20.     } else if (val == 'r') {     //   Right
  21.    Motor.turnRight(250);
  22.     }  else if (val == 'o') {     // RightOrigin
  23.    Motor.turnLeftOrigin(250);
  24.     } else if (val == 'p') {       //  LeftOrigin
  25.    Motor.turnRightOrigin(250);
  26.     } else if (val == 's') {       //  Stop
  27.    Motor.stop(0);
  28.     }
  29. }
复制代码

可以从代码中看到,这位客户是想通过串口输入字符,来控制小车行动。
那为什么同样在串口监视器输入字符,UNO运行正常,mega2560则没有反应呢?


解决方法:由于mega2560用串口调试的话,串口启动较慢。所以,在需要使用串口调试的话,打开串口监视器后,再重启一下板子就可以解决这个问题了。

总结:所以。。并不是什么大问题,重启一下就好了~ 碰到这类问题,最简单的方法就是直接写一句Serial.println(),看看串口是不是接收正常。一步一步来找到问题所在。



Phoebe  高级技匠

发表于 2013-11-21 10:47:33

记下了。。。:lol
回复

使用道具 举报

何处不江南  初级技匠

发表于 2013-11-21 11:33:46

没看懂啊。。
回复

使用道具 举报

Jane  高级技匠
 楼主|

发表于 2013-11-21 13:52:13


{:3_64:} 就是烧完程序要重启一下
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail