Burn Bootloader 的方法#

Arduino as ISP and Arduino Bootloaders | Arduino Documentation

问题#

不能成功上传程序(Upload Sketch)。

起因:同一台电脑的两个 USB 接口各连接了一个 Arduino,上传完程序后,两 Arduino 都在不停的使用串口传数据到电脑。后来再次上传程序时,就遇到了不能用 USB 接口上传程序的问题。

显示如下错误:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x43
Failed uploading: uploading error: exit status 1

重刷 Bootloader 方法#

用一块好的 Arduino 板作为(ISP ICSP)烧写工具(Programmer),给不能用 USB 上传程序的 Arduino (Target) 重刷 bootloader 程序。

连线#

步骤总结

  1. 连线

  2. 选择 Tools > Programmer > Arduino as ISP

  3. 打开 File > Examples > ArduinoISP > ArduinoISP (sketch), Compile and Upload

  4. 点击 Tools > Burn Bootloader

如果 Bootloader 区没有受损,上传的 Bootloader 文件版本也正确,那么这样操作后,原先不能 USB 上传程序的 Arduino 就又可以正常使用了。

将Arduino作为编程器#

但是, Arduino 重刷 bootloader,也不一定能修好 Arduino 的 USB 串口 Upload 程序的功能。此时可以用 SPI (ISP/ICSP)方式上传程序。方法:

  1. 使用烧写 Bootloader 相同的连线方法;

  2. 在 Arduino IDE 中选择 Sketch > Upload using programmer 完成程序烧写。这一步是将一块 Arduino 用作编程器使用。

注意: 这种方法要用到两块Arduino 板,成本有些高,而且连线多,显然不能经常用。不过如果 Target Arduino 不是用作平时开发,而只用作不经常修改的工作板,是可以的。

ArduinoUNOtoUNO ISP2

Reference#