简介:avrdude是一个多平台的avr系列MCU的下载器,这个软件的使用方法比较简单,也很容易调用,但因为一些时候资料不全所以用起来多有不便的地方
需要注意的是如果要使用这个软件来下载固件,一定要在Arduino IDE导出的编译好的文件中选择带bootloader字样的文件
举个例子:
将当前arvdude目录下的scrollKeyboardX.ino.with_bootloader.leonardo.hex通过COM10上传到Leonardo
那么我需要在命令提示符中输入的语句为:
.\avrdude.exe -C avrdude\avrdude.conf -v -v -v -v -p atmega32u4 -c avr109 -P COM10 -b 57600 -D -U flash:w:scrollKeyboardX.ino.with_bootloader.leonardo.hex:i
如果是UNO等328p机型,则将上述的参数中的atmega32u4替换为m328p
如果直接的输入这个语句是不行的,avrdude这边不会响应,如图
查询一些资料可知,在Arduino这边必须要复位,以进入DFU模式才可以下载
有时候没有复位按钮,或者说我这边没有办法按到复位按键,那么就没法去切换到该模式,怎么办?
这时候就需要学大多数的下载器和Arduino IDE的做法了,可以使用串口打开关闭的方式来让Arduino切换到DFU模式
可以打开设备管理器,在开关串口后,我们就可以观察到切换串口使下位机重启,常用的串口号消失,出现了一个不同的串口号
当然,这个模式的前提是你下载的目标MCU需要内置有bootloader,这也是为何前面强调一定要选择带bootloader字样的HEX固件,不然会需要你使用USBtiny的方式才能下载。
所以,在切换完成后我们可以看到bootloader下载的目标串口是COM13
修改前面的参数,将串口号改为COM13,这里有一点是关于-v这个参数,-v如果输入越多那么在下载过程中的信息也就越详细,在没有特殊需求的情况下还是一个-v即可
.\avrdude.exe -C avrdude.conf -v -v -v -v -p atmega32u4 -c avr109 -P COM13 -b 57600 -D -U flash:w:scrollKeyboardX.ino.with_bootloader.leonardo.hex:i
如果一个-v的话输出的信息:
四个-v输出信息:
在切换串口开关后,五秒左右时间内立刻输入语句到命令提示符执行avrdude,即可正常的下载HEX文件到MCU