Arduino开发

news2025/2/25 9:47:04

文章目录

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

Arduino IDE 的使用

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

在这里插入图片描述

2. 下载配置

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

3. 下载

在这里插入图片描述

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

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的支持库;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1158893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图数据库Neo4j——SpringBoot使用Neo4j 简单增删改查 复杂查询初步

前言 图形数据库是专门用于存储图形数据的数据库,它使用图形模型来存储数据,并且支持复杂的图形查询。常见的图形数据库有Neo4j、OrientDB等。 Neo4j是用Java实现的开源NoSQL图数据库,本篇博客介绍如何在SpringBoot中使用Neo4j图数据库&…

2023最新全国拉新app推广接单平台合集 地推网推项目平台渠道

平台 ”聚量推客“ 服务商直营的拉新平台 数据和结算都有保障 地推平台承上启下,对上承接甲方项目,对下对接渠道,方便甲方放单又方便渠道统一接单 以下是全国国内十大地推拉新app推广接单平台分享,2023最新全国拉新app推广接单平…

cec2017(MATLAB):星雀优化算法(Nutcracker optimizer algorithm,NOA)

一、星雀优化算法NOA 星雀优化算法(Nutcracker optimizer algorithm,NOA)由Mohamed Abdel-Basset等人于2023年提出,该算法模拟星雀的两种行为,即:在夏秋季节收集并储存食物,在春冬季节搜索食物的存储位置。星雀优化算法(Nutcrack…

C++ Qt 学习(一):Qt 入门

Qt6 安装教程 0. 基础知识 0.1 qmake 和 cmake 对比 qmake:qt 独有的代码构建工具cmake:C 通用的代码构建工具,绝大部分 C 开源项目都使用 cmake 管理代码qt 项目,没有特殊要求,使用 qmake 即可 0.2 Qt 3 个窗口类的…

代码随想录Day34 LeetCode T343整数拆分 T96 不同的二叉搜索树

目录 前言 LeetCode T343 整数拆分 题目思路: 第一步:确定递归数组含义 第三步:初始化dp数组(其实也是为接下来的递推做准备) 第四步:确定遍历顺序(很多情况下是对遍历顺序有要求的) 第五步:打印dp数组(如果遇到错误可以打印一下dp数组看看和我们推理的dp数组有啥不同,错…

0基础学习PyFlink——使用DataStream进行字数统计

大纲 sourceMapSplittingMapping ReduceKeyingReducing 完整代码结构参考资料 在《0基础学习PyFlink——模拟Hadoop流程》一文中,我们看到Hadoop在处理大数据时的MapReduce过程。 本节介绍的DataStream API,则使用了类似的结构。 source 为了方便&…

OSPF高级特性

OSPF高级特性(1) 一、OSPF不规则区域类型 产生原因:区域划分不合理,导致的问题 1、非骨干区域无法和骨干区域保持连通 2、骨干区域被分割 造成后果:非骨干区域没和骨干区域相连,导致ABR将不会帮忙转发区域间的路由信息。非骨干区…

MS3142电机驱动器可兼容LV8548M

MS3142/MS3142S 是一个双全桥电机驱动。可兼容LV8548M(功能基本一致,管脚不兼容)。电源电压供电范围 4V 到 18V,平均电流 1.1A,电流峰值 1.54A。如果需要更高的电流能力,可以将双全桥并联使用。 四个输入脚…

数据结构预算法--顺序表

1.顺序表 1.1概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表一般可以分为: 1. 静态顺序表:使用定长数组存储元素。 2. 动态顺序表:使…

Shiro 身份验证绕过 (CVE-2020-13933)

一、漏洞描述 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。 Apache Shiro身份验证绕过漏洞CVE-2020-11989的修复补丁存在缺陷,在1.5.3及其之前的版本,由于shiro在处理url时与spring仍然存在差异,依然存…

Day42 力扣动态规划 :123.买卖股票的最佳时机III |188.买卖股票的最佳时机IV

Day42 力扣动态规划 :123.买卖股票的最佳时机III |188.买卖股票的最佳时机IV 123.买卖股票的最佳时机III第一印象看完题解的思路dp数组:递推公式:初始化遍历顺序 实现中的困难感悟代码 188.买卖股票的最佳时机IV第一印象初始化递推公式看完题…

黄金矿工小游戏

欢迎来到程序小院 黄金矿工 玩法:点击开始游戏,黄金和钩子,钩子会左右摆动,对准黄金位置点击鼠标左键钓起黄金加对应时间,钓起黑色四块减去响应时间,快去挖矿吧^^。开始游戏https://www.ormcc.com/play/ga…

【错误解决方案】Error: module ‘cv2‘ has no attribute ‘SURF‘

1. 错误提示 python-opencv高版本中,AttributeError: module cv2 has no attribute SURF问题; 错误提示:Error: module ‘cv2‘ has no attribute ‘SURF‘ 2. 解决方案 解决:将sift cv2.SIFT()替换为:sift cv2.x…

windows内存取证-中等难度-下篇

上文我们对第一台Target机器进行内存取证,今天我们继续往下学习,内存镜像请从上篇获取,这里不再进行赘述​ Gideon 攻击者访问了“Gideon”,他们向AllSafeCyberSec域控制器窃取文件,他们使用的密码是什么? 攻击者执…

day57--动态规划15

392.判断子序列 115.不同的子序列 第一题:判断子序列 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如&…

大模型冷思考:企业“可控”价值创造空间还有多少?

文 | 智能相对论 作者 | 叶远风 毫无疑问,大模型热潮正一浪高过一浪。 在发展进程上,从最开始的技术比拼到现在已开始全面强调商业价值变现,百度、科大讯飞等厂商都喊出类似“不能落地的大模型没有意义”等口号。 在模型类型上&#xff0…

2023年【高压电工】考试及高压电工找解析

题库来源:安全生产模拟考试一点通公众号小程序 高压电工考试参考答案及高压电工考试试题解析是安全生产模拟考试一点通题库老师及高压电工操作证已考过的学员汇总,相对有效帮助高压电工找解析学员顺利通过考试。 1、【单选题】 额定容量是指:在变压器铭…

Spring源码分析篇:@Autowired 是怎样完成注入的?究竟是byType还是byName亦两者皆有

1. 五种不同场景下 Autowired 的使用 第一种情况 上下文中只有一个同类型的bean 配置类 package org.example.bean; ​ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; ​ Configuration public class…

docker-compose 简单部署MySQL Database

docker-compose 简单部署MySQL Database 本博文部署MySQL 并与上篇部署的 Flask进行关联 主博客目录:《从零开始学习搭建量化平台笔记》 文章目录 docker-compose 简单部署MySQL Database部署 MySQLMySQL 开放端口与权限 主项目计划需要搭建一个MySQL 数据库为其他部…

“零基础”PHP代码审计入门

目录 一、代码审计目的 二、代码审计基础 三、 代码审计思路 四、PHP核心配置 五、 代码审计环境 六、手动调试代码 七、PHP的弱类型 八、学习漏洞函数 九、审计入门总结 推荐一些demo: 一、代码审计目的 代码审计指的是对源代码进行检查,寻找…