Arduino开发

文章目录

    • 资源
    • Arduino IDE 的使用
      • 1. 使能编译以及烧录的`LOG`:
      • 2. 下载配置
      • 3. 下载
    • Arduino指令
    • 程序下载步骤
      • 通过下载器下载
      • 通过串口下载
    • 关于`Arduino IDE`工程生成的二进制文件对比
    • `Tools-->burn bootloader` 和 `ArduinoISP例程` 的区别
    • 自带例程

资源

  1. Arduino通过串口进行固件升级

Arduino IDE 的使用

1. 使能编译以及烧录的LOG

Arduino开发_第1张图片

2. 下载配置

Arduino开发_第2张图片
上面的Board:"Arduino Nano"很重要,选不同的开发板,下面的选项也会不一样!
Programmer选项用于指定下载器的类型;
Burn Bootloader用于下载bootloader,这个过程必须使用下载器;有了这个bootloader后,就可以通过串口对MCUapplication进行升级了;

3. 下载

Arduino开发_第3张图片

  1. UploadUpload Using Programmer的区别:Upload是通过串口下载,Upload Using Programmer是通过下载器下载;
  2. Export Compiled Binary 用于将编译后产生的二进制文件保存到源码目录下;
  3. Show Sketch Folder可以快速打开二进制文件所在的文件夹,如下图;
    Arduino开发_第4张图片

Arduino指令

参考:指令选项说明

  1. 通过使能烧录过程LOG后,可以发现各种过程的指令如下(以下指令可能随IDE安装路径,工程路径,IDE版本等环境不同而不同,详情可以在Arduino IDE执行相关指令,查看输出日志):
# burn bootloader
C:\Users\UserName\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\UserName\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -vvvvv -patmega328p -cusbtiny  -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m
C:\Users\UserName\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\UserName\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -vvvvv -patmega328p -cusbtiny  -Uflash:w:C:\Users\UserName\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex:i -Ulock:w:0x0F:m

# upload by programmer
C:\Users\UserName\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\UserName\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -vvvvv -V -patmega328p -cusbtiny  -Uflash:w:C:\Users\UserName\AppData\Local\Temp\arduino\sketches\A960C6A0514AE78FCA1E953ECC21/test.ino.hex:i

# upload by uart
C:\Users\UserName\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\UserName\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude -CC:\Users\UserName\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -vvvvv -V -patmega328p -carduino -PCOM11 -b57600 -D -Uflash:w:C:\Users\UserName\AppData\Local\Temp\arduino\sketches\A960C6A0514AE78FCA1E953ECC21/test.ino.hex:i

上面burn bootloader的第一条指令主要是解锁对相关存储单元的写保护;
上面burn bootloader的第二条指令,就是烧录bootloader了。从中可以看到,bootloader文件的路径,在这个路径下,还有相应的源代码;
upload by programmer指令中,通过-cusbtiny指定了下载器;
upload by uart指令中,通过-PCOM11 -b57600指定了串口及波特率;
上面所有的指令中,都有一个-vvvvv,这个选项用于显示指令执行过程中的日志,v越多,日志越详细;

程序下载步骤

通过下载器下载

  1. Tools --> Board:选择Arduino Nano(根据自己开发板而定);
  2. Tools --> Processor:选择ATmega328P(Old Bootloader) (根据自己开发板而定;确保上面的Board选对了,某些选项才会出现)
  3. Tools --> Programmer:选择USBTinyISP(根据自己下载器型号而定)
  4. Sketch --> Upload Using Programmer

通过串口下载

  1. Tools --> Board:选择Arduino Nano(根据自己开发板而定);
  2. Tools --> Processor:选择ATmega328P(Old Bootloader) (根据自己开发板而定;确保上面的Board选对了,某些选项才会出现)
  3. Tools --> Programmer:选择USBTinyISP(根据自己下载器型号而定)
  4. Tools --> Burn Bootloader (这个步骤只能通过下载器进行)
  5. Sketch --> Upload (这里就是通过串口下载了)

关于Arduino IDE工程生成的二进制文件对比


通过以上二进制文件的对比发现,带有with_bootloaderhex文件和不带bootloader二进制文件的前面都是一样的,只是在0x7800地址处多了一些内容,这些内容就是实现串口下载功能的代码了。

Tools-->burn bootloaderArduinoISP例程 的区别

  1. “Tools --> burn bootloader”:通过打开烧录过程日志(File–>preference),可以看到烧录的是哪一个bootloader文件;这个bootloader用于使用串口进行升级;
  2. “ArduinoISP例程”: 把板子作为下载器,给别的开发板下载程序;

自带例程

  1. Arduino IDE中带了很多例程,可以直接使用;可在File-->Examples里面查看;
  2. Arduino IDE也可以开发STM32,不管需要安装相应MCU的支持库;

你可能感兴趣的:(Arduino)