Arduino开发

文章目录

    • 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.rhkb.cn/news/176962.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【发表案例】2区正刊,网络安全、智能系统领域,2个月3天录用,11天见刊,16天检索!

计算机类SCIE 【期刊简介】IF:4.0-5.0,JCR2区,中科院3区 【检索情况】SCIE 在检,正刊 【征稿领域】提高安全性和隐私性的边缘/云的智能方法的研究,如数字孪生等 【截稿日期】2023.11.30 录用案例:2个月…

SpringBoot / Vue 对SSE的基本使用

一、SSE是什么? SSE技术是基于单工通信模式,只是单纯的客户端向服务端发送请求,服务端不会主动发送给客户端。服务端采取的策略是抓住这个请求不放,等数据更新的时候才返回给客户端,当客户端接收到消息后,再…

恒驰服务 | 华为云数据使能专家服务offering之数仓建设

恒驰大数据服务主要针对客户在进行智能数据迁移的过程中,存在业务停机、数据丢失、迁移周期紧张、运维成本高等问题,通过为客户提供迁移调研、方案设计、迁移实施、迁移验收等服务内容,支撑客户实现快速稳定上云,有效降低时间成本…

IntelliJ IDEA快捷键sout不生效

1.刚下载完idea编辑器时,可能idea里的快捷键打印不生效。这时你打开settings 2.点击settings–>Live Templates–>找到Java这个选项,点击展开 3.找到sout 4.点击全选,保存退出就可以了 5.最后大功告成!

物联网整体框架有哪些层面?

物联网是当前非常火热的话题,各个行业对物联网的关注和投入力度也很大,一些互联网巨头都在紧锣密鼓的布局物联网产业,抢占市场先机。 物联网的整体构架大致可以分为以下四个层面: 1.感知识别层 感知层是物联网整体架构的基础&…

基于springboot实现学生就业管理系统项目【项目源码+论文说明】

基于springboot实现学生就业管理系统演示 摘要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,学生就业管理系统也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人…

【安装】自建Rustdesk Server

文章目录 RustDesk说明RustDesk优点RustDesk相关链接非Docker基于CentOSRustDesk默认程序占用端口说明 启动 hbbr 是中继服务器启动 hbbs 是ID服务器客户端配置编写启动脚本hbbr、hbbs命令详细说明 RustDesk说明 RustDesk优点 自建服务端。搭建在自己的云服务器就相当于独享高…

antv/g6 节点、及自定义节点

节点 AntV G6 中内置节点支持的通用属性通常包括以下几个: id:节点的唯一标识符。 x 和 y:节点的位置坐标。 label:节点的标签文本。 style:节点的样式,用于设置节点的外观,可以包括填充颜色…

windows系统卸载mysql

1. win r 输入 control 打开控制面板 2.搜索mysql,删除搜索内容 3.删除相应路径下的mysql文件夹C:\Program Files C:\ProgramData 4.删除注册表,win r 输入 regedit 打开注册表 5.搜索MySql 删除掉 完成

高等数学啃书汇总重难点(十)重积分

方法性的一章,看着唬人,实际上定积分学得熟练,就可以很轻松的掌握这一章的内容,重点在于计算各种坐标下的二重或三重积分~ 1.几何意义 2.定义 3.性质 4.直角坐标计算二重积分 5.极坐标计算二重积分 6.三重积分 7.重积分的应用

国际物流常见风险如何规避_箱讯科技

外贸物流是国际贸易的重要环节,其管理和效率的高低直接影响着贸易的成本和效益。因此,外贸企业应该重视物流的组织和管理,提高物流运作的效率。 国际物流基础知识 01什么是“双清包税”和“双清不包税” 双清包税上门又叫双清包税到门&…

论文翻译-ImageNet Classification with Deep Convolutional Neural Networks

[toc] 前言 AlexNet是是引领深度学习浪潮的开山之作,即使是我们现在进入了ChatGPT时代,这篇论文依然具有一定的借鉴意义。AlexNet的作者是多伦多大学的Alex Krizhevsky等人。Alex Krizhevsky是Hinton的学生。网上流行说 Hinton、LeCun和Bengio是神经网…

京东h5st逆向 h5st代码之拓展

知识点 node安装模块 crypto-js JavaScript 中的加密库 则更偏向于消息摘要算法、对称加密和简单的哈希函数,支持 AES、DES、SHA-1、HMAC 等诸多算法,适用于对客户端本地存储的数据进行加密、散列或签名处理等场景 axios 一旦安装成功,我们就…

prometheus服务发现

Consul简介 ◼ 一款基于golang开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理 的功能 ◼ 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能 部署 curl -LO https://releases.hashicorp…

Xcode中如何操作Git

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的编码爱好者 大家好,我是 DevO…

kubernetes-service微服务

目录 一、service微服务 二、Ipvs模式 三、ClusterIP 1.ClusterIP 2.headless 四、NodePort 1.NodePort 2.默认端口 五、LoadBalancer 1.LoadBalancer 2.metallb 六、ExternalName 一、service微服务 Kubernetes Service微服务是一种基于Kubernetes的微服务架构&…

二氧化铈纳米棒 Cerium Oxide Nanorods 氧化铈纳米棒

二氧化铈纳米棒 (西)产品名称:二氧化铈纳米棒 (安)英文名称:Cerium Oxide Nanorods (瑞)成分:氧化铈纳米棒、乙醇 (禧)浓度:0.1mg…

仿东郊到家按摩小程序app开发搭建

最新版的仿东郊到家按摩小程序,支持上门服务系统,全开源,并且支持公众号、小程序和app。前端使用uniapp,后端使用php,价格合理。用户端功能模块包括技师选择、预约服务、优惠券、订单等,还有意见功能和城市…

Spring Security 6.1.x 系列(4)—— 基于过滤器链的源码分析

一、自动配置 在 Spring Security 6.1.x 系列(1)—— 初识Spring Security 中我们只引入spring-boot-starter-security 依赖,就可以实现登录认证,这些都得益于Spring Boot 的自动配置。 在spring-boot-autoconfigure模块中集成了…

LSF 守护程序和进程、集群通信路径和安全模型

LSF 细观 了解在 LSF 主机上运行的各种守护进程,LSF 集群通信路径,以及 LSF 如何容许集群中的主机故障。 1、LSF 守护程序和进程 集群中的每个主机上都运行多个 LSF 进程。 正在运行的进程的类型和数量,取决于主机是主节点还是计算节点。 主…