在“內存子系統”一章中我們曾提到,Arduino UNO R3開發板上的ATMega328P有0.5KB的Flash空間用於引導程序;因為有引導程序的支持,Arduino可以使用串口上傳程序而無需編程器。一般地,按下Arduino UNO R3開發板上的復位按鍵,13引腳上的LED快速的閃爍3下,代表引導程序正常啟動。如果出現上傳程序沒有響應或復位時LED沒有閃爍,排除硬件故障后,可以考慮重新燒錄引導程序。
(1) 使用USBasp編程器燒錄引導程序
Arduino IDE支持的編程器有AVRISP mkII,USBtinyISP和USBasp等,這里以USBasp為例。
上左圖是10P的USBasp接口,右圖是6P的Arduino ICSP接口,可以使用10P-6P的轉接線連接它們,也可以直接用杜邦線將相應引腳連接。
打開Arduino IDE,在“工具”菜單下選擇開發板為“Arduino/Genuino Uno”,編程器為“USBasp”后,點擊“燒錄引導程序”,等待燒錄完成即可。
(2) 使用Arduino作為編程器燒錄引導程序
如果你擁有另一塊Arduino開發板,則可以使用它來作為編程器;向工作正常的Arduino開發板上傳ArduinoISP示例,並如圖所示連接兩塊Arduino開發板:
其中下面一塊是上傳了ArduinoISP示例的Arduino開發板。
打開Arduino IDE,在“工具”菜單下選擇開發板為“Arduino/Genuino Uno”,編程器為“Arduino as ISP”后,點擊“燒錄引導程序”,等待燒錄完成即可。