手上有两块几年前买的arduino nano板子,这两天要用的时候发现用arduino IDE 1.8.11烧写的时候始终报错“上传失败”。查阅相关资料发现应该在 IDE–工具–处理器 中选择ATmega238P(Old Bootloader)即可上传成功。
这也侧面说明了我的板子的BootLoader已经旧了,不如顺便更新一下。
1. 将ISP下载器的程序烧录进第一块arduino板(下文将其称为 ISP板):
打开 arduino IDE – 示例 – 11.ArduinoISP 示例文件,并上传(烧录)进arduino板中,因为两块板子都是old BootLoader,所以应注意此时选择的处理器应为“ATmega238P(Old Bootloader)”才能成功上传。
2. 将第二块arduino板(被烧录板)与ISP板相连:
本例中使用的arduino nano 的ISP接口是D10~D13口,分别是SS, MOSI, MISO, SCK
将ISP板与被烧录板的MOSI(D11), MISO(D12), SCK(D13), GND, 5V 引脚相接,将ISP板的SS(D10)引脚与被烧录板的RST引脚相接
ISP板 | 被烧录板 |
---|---|
MOSI(D11) | MOSI(D11) |
MISO(D12) | MISO(D12) |
SCK(D13) | SCK(D13) |
GND | GND |
5V | 5V |
SS(D10) | RST |
注:由于不同型号的arduino板在引脚复用时对应的引脚不一样,所以括号内的引脚名称仅适用于arduino nano 和arduino UNO。若要使用arduino mega2560 等其他型号的板子时,注意对应的ISP接口与引脚号的对应与此表括号内的引脚号是不同的。
3. 进行BootLoader烧写
在 IDE–工具–处理器 中选择ATmega238P,选择没有括号的那个,作为要烧写进去的版本。
IDE–工具–编程器 中选择Arduino as ISP
点击“烧录引导程序”即可完成烧写。
至此第二块Arduino nano 板的BootLoader已经烧写(更新)为最新的了。而第一块nano板作为ISP下载器,其中的BootLoader并未更新。接下来对调两者的角色,再如法炮制即可。
需要注意的是,此时给第二块(已更新)的nano板烧录ISP程序时,在IDE–工具–处理器 中就应该选择 ATmega238P了,烧录好ISP程序后,然后再给第一块板烧录BootLoader。
在烧录引导程序的时候有过这样的报错:
avrdude: ser_open(): can't open device "\\.\COM10": ϵͳ�Ҳ���ָ�����ļ���
错误原因是串口端口被占用,尝试关闭IDE或其他软件的串口监视器后重试。
还有报错:
avrdude: Expected signature for ATmega328P is 1E 95 0F. Double check chip, or use -F
或:
Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.
解决方案:
在 IDE–文件–首选项 中把所有的调试信息(显示详细输出)打开,若显示Device signature = 0x000000
或Device signature = 0xffffff
等情况,其实不是真的芯片签名有误,而是电路连接有问题,再次检查接线是否接对。
总体思路是:
值得注意的有两点:
ISP引脚 | nano和UNO | mega2560 |
---|---|---|
SS | D10 | D53 |
MOSI | D11 | D51 |
MISO | D12 | D50 |
SCK | D13 | D52 |
觉得有用的话,不要吝惜评论点赞分享哦,希望大家多多包涵,有任何问题欢迎指正、讨论。
本文基于CC-BY-SA 4.0协议,欢迎转载
(博客看累了?去我的B站瞧一瞧?)
原因在JDK11版本以后,javax.annotation这个包被移除了,所以无法使用@resource注解。解决方法在pom文件中引入以下依赖即可: <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2.
animation动画的使用animation:mymove 5s infinite-webkit-animation:mymove 5s infinite; /Safari and Chrome/@keyframes mymove{from {left:0px;}to {left:200px;}}总结:动画&:hover {transform: scale(0.5); // 这个是缩放opacity: 0.2; // 这个是透明度animation: mymove 1s; /
设置2个盘,一个可以引导的光驱,一个存储用的磁盘开始刷机看看系统 上认到的磁盘状态
该功能在账号框里面输入用户名,然后把查询结果在jsp页面中显示出来,账号存储在数据库中,在servlet中查询,返回结果,这其实就是参数的传递的过程方法一:requestrequest.setAttribute(“mess”, “该用户未注册”); 前面参数是key 后面是valuerequest.getRequestDispatcher(“findpassword.jsp”).f...
1、导致低对比度图像的原因:照明不足、成像传感器动态范围太小、镜头光圈设置错误。2、分段线性变换函数:增强原图各部分的反差,即增强输入图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区域。优势在于形式可以任意合成,缺点是是需要更多的用户输入。3、分段线性变换的函数形式:给出需要转换的灰度范围,决定线性变换的斜率。4、分段的灰度拉伸可以更加灵活地控制输出灰度直方图的分布,可以有选择地拉伸某段灰度区...
项目实战-外卖自提柜 1.项目介绍、协议制定项目实战-外卖自提柜 2. CubeMX + FreeRTOS入门项目实战-外卖自提柜 3. FreeRTOS主要API的应用项目实战-外卖自提柜 4. FreeRTOS 堆栈分配、调试技巧项目实战-外卖自提柜 5. ESP8266 01S配置与掉线处理项目实战-外卖自提柜 6. 硬件工作与测试(原理图、PCB绘制、测试视频)一、第一个任务 初步入门FreeRTOS以后,着重解决通信部分,重新梳理一下与服务器通信部分的需求:1、设备端和服...
例子function one($str1, $str2){two("Glenn", "Quagmire");}functiontwo($str1, $str2){three("Cleveland", "Brown");}function three($str1,$str2){print_r(debug_backtrace());}one("Peter", "Griffin");?>输出:Ar...
I'm implementing a feature for displaying Incomes/Expenses for properties & also provided Filter for 1 Month , 3 Months , 6 Months & 12 Months .So, I have to display Months labels according to...
目录一、Here Document免交互1.1免交互定义1.2语法格式1.3实例示例1:使用 wc -l 命令后面直接跟文件名就可以统计文件内有多少行内容,将要统计的内容置于标记“EOF” 之间,直接将内容传给 wc -l 来统计。示例2:通常使用 read 命令接收用户的输入值时会有交互过程,在EOF两个标记间可以输入变量值示例3:使用 passwd命令设置密码1.4Here Document 变量设定示例1:在写入文件时会先将变量替换成实际值,再结合cat 命令完成写
emmmmm,一下子跳到了SPI通信,跨度有点大,刚好学到这里,OK少废话。相信学过ARM的同学对SPI通信也有一定的认识,很多模块都需要用到SPI通信。我就直接用黑金开发板AX301的SPI_Flash例程里面的SPI_master给大家讲解一下。够良心的啦,黑金开发板的资料都没有给出相应的SPI知识,这让学过ARM但基础知识不扎实的同学怎么办(说的好像就是我。。。。。。。)来吧来吧,哥给你...
latex解决\texshade等命令无法跨越双栏问题