从命令行上传到Arduino


8

如果我已将草图编译为十六进制,是否可以使用avrdude直接从命令行将该草图上传到Arduino板?

Pekkaa指出arduino ide在上传草图时执行以下命令:

./hardware/tools/avrdude -Chardware/tools/avrdude.conf -pm328p -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/pekka/sketchbook/Blink2/applet/Blink2.hex 

Answers:


5

arduino IDE在运行avrdude之前会重置连接的arduino。它通过告诉FTDI设备对连接到arduino的复位引脚的DTR线施加脉冲来实现此目的。Pekkaa找到了执行此操作的示例perl代码,并在Arduino论坛上更新了该线程。

为了完整起见,以下是他们用于上传.hex文件的命令:

perl -MDevice::SerialPort -e 'Device::SerialPort->new("/dev/ttyUSB0")->pulse_dtr_on(1000)'; \
./hardware/tools/avrdude -Chardware/tools/avrdude.conf -q -q -pm328p -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/pekka/sketchbook/Blink2/applet/Blink2.hex;

还有一个用于重置arduinospython脚本,如果您无法在系统上正常运行,可以使用它代替perl。


从肯特大学的Python代码正确的网址:projects.cs.kent.ac.uk/projects/kroc/trac/browser/kroc/trunk/...
戴夫

将您的建议整合到@Adam的答案中;它将很快更新。谢谢!
boardbite

IIRC,您可以使用stty完成重置,而无需python或perl。
克里斯·斯特拉顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.