如何使用Avrdude下载HEX文件到Arduino

版权声明:欢迎转载,请注明出处 https://blog.csdn.net/u012388993/article/details/82866063

简介: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

猜你喜欢

转载自blog.csdn.net/u012388993/article/details/82866063
今日推荐