html tool

2015年1月28日星期三

avrdude: stk500_getsync(): not in sync: resp=0x00错误提示问题原因汇总

add:http://www.geek-workshop.com/thread-627-1-1.html
---------------------------传说中的分割线--------------------------------
问题:avrdude: stk500_getsync(): not in sync: resp=0x00错误
就是测试delay在计时时无中断影响时,没有喂狗操作,多长时间还可以使用的小Dome,结果下载时一直如上。

结果:
下载的时候,arduino控制板上接了其他扩展板(使用D0,D1口的基本都会出问题,这两个口是用来通信下载程序的。)如果接了其他扩展板不能用,可以先拔掉扩展板再次尝试重新下载程序
PS:
测试如下

void testdelay(){
  int time=1000*60; //1min=60s * 1000 miliseconds
  Serial.print("time stat");
  delay(2000);
  Serial.print("time 2s");     //到这里还是可以的
  delay(time*5);                //这里就挂掉了,好吧,我查官方帮助这里可以是unsigned long[http://www.arduino.cc/en/Reference/Delay]  函数上限应该是

4394967295,但是好吧,我上位机写多了,方法上限不是物理上限,改把加循环喂狗吧,这样看之前想用中断直接计时方式应该会有相同问题,看来下一步还是要用DS3231帮忙才行啊。

  Serial.print("time * 5 is over");
  delay(time*10);
  Serial.print("time * 10 is over");
}
好吧,地址中还提供了其他的解释,转如下:
-------------------------------------------------------原文--------------------------------
这个错误代表着就是无法通过USB口与arduino控制板进行通信,下面总结一下这个问题常见的几个原因。

1,arduino控制板或者COM口没有选对,这种问题最简单,照下图的选项选择对了就OK。

avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude: stk500_getsync(): not in sync: resp=0x00 
2012-3-11 21:57 上传
下载附件 (56.11 KB) 
avrdude: stk500_getsync(): not in sync: resp=0x00


2,下载的时候,arduino控制板上接了其他扩展板(使用D0,D1口的基本都会出问题,这两个口是用来通信下载程序的。)如果接了其他扩展板不能用,可以先拔掉扩展板再次尝试重新下载程序。

3,bootloader损坏,这种情况下需要重新刷bootloader。

4,驱动未安装好。(目前遇到ghost版本,或者精简版win7系统安装uno驱动时,无法安装的问题。这种情况,需要重装系统。ghost版或者精简版操作系统,请谨慎安装,后患无穷。)

5,芯片不停的复位,无法与外界通讯。案例,我测试了一个看门狗,复位时间很短,原本想测试用的,结果就出现上述故障了。
解决办法:在IDE快要upload的时候,插入USB,反复多次,抢个时间差,就可以写入了

没有评论:

发表评论