温馨提示本篇文章用于入门教程略显废话敬请谅解。Arduino作为一个开源的电子平台因拥有灵活、易用的硬件和软件因素深受大家的喜欢尤其是有硬件基础的朋友们想必一定自己动手制作过Arduino uno最小系统板或因操作不当烧坏芯片时更换过ARM芯片但是从淘宝或其它渠道购买的芯片不同于我们购买的成品开发板芯片缺少bootloader无法直接烧录程序进行使用需要我们自己先烧录bootloader才能使用Arduino uno烧录bootloader的教程网上很多但是发现一个通病就是他们写教程的时候往往使用的都是购买的成品开发板或者无实物编写使用烧录工具时一次就成功往往忽略了新的芯片不兼容板子时带来的问题导致很多新手在烧录bootloader时一直失败又找不到问题怀疑自己做的板子有问题或者芯片不行今天这篇文章来给大家说一下关于自制的改进版Arduino uno或更换ATmega328p芯片后的开发板如何烧录bootloader。下面这张图左就是我自制的uno开发板在网上成品开发板右的基础上加入更多的5V、3V3、GND接口省去使用面包板接线更方便。首先我们先看一下自制或更换芯片后的板子直接烧录程序时会出现的错误如下图这个错误就是通信失败出现这个其实分为2种情况第一种情况是购买的成品板或有bootloader的板子做功能调试的时候出现这种报错那是因为在上传程序的时候我们开发的IO0、IO1接口接了蓝牙或其它通信设备IO0、IO1接口Arduino uno的硬件串口在上传程序时会使用如果被占用就会出现这个报错处理方法就是上传程序的时候把IO0、IO1的外设先拔掉程序上传完成后再把外设接上第二种就是我们这种自制或更换芯片没有bootloader会通信失败。其次我们来了解一下烧录bootloader的方法我验证了2种可行方案第一种使用AVR USB烧录器进行烧录第二种使用其它成品开发板作为烧录器进行烧录这个今天不做教程分析了其实两种方案操作都一样对比着进行即可。我们今天只说第一种使用AVR USB烧录器通过开发板的ISCP接口进行烧录ICSP接口为在线程序烧录接口一个2*3的排针端子分别对应RESET、SCK、MISO、GND、MOSI、5V具体顺序如下图所示。如果说你自制板子时没有预留这个接口那也没关系因为这6根排针与单片机相连接分别对应RESET、IO13、IO12、GND、IO11、5V接口使用杜邦线连接即可再如果说你画板子的时候只把用的IO口画出来了其他的没预留那也没关系2种终极方案1看芯片引脚找出这6个芯片引脚飞线烧录2把芯片焊接到成品板上烧录后再焊接回来。接下来我们说烧录器在淘宝购买即可10~20元不等我买的13元但是需要必坑我先买了一款左但是我的电脑识别不到这个设备换了三四个电脑都不行一直报未知USB设备设备描述符请求失败所以又买了另外一款右可以正常使用。接下来说烧录软件可以直接使用Arduino ide进行烧录方便快捷也可以使用商家提供的软件基本都是PROGISP但比较繁琐我们先来说使用PROGISP软件烧录使用AVR USB烧录器连接开发板ICSP接口开发板不需要USB再供电ICSP接口有供电插入电脑打开软件按照下图进行设置先确认软件能够识别到我们的烧录器识别成功为1然后在2中选择芯片类型ATmega 328P接下来点击3选择flash文件这个商家没有提供我们电脑中有路径如下但咱们电脑名称不同替换14090C:\Users\14090\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\bootloaders\optiboot打开之后按照步骤4选择328.hex文件然后选择5中的选项点击6编程熔丝按7中进行熔丝设置然后关闭弹窗执行8进行烧录即可我看网上教程都是到这一步说等成功即可但是对于烧录结果无疑是失败的指的是全新的芯片而不是买的成品板进行二次烧录会出现下边这种无法识别的情况。这个时候先不用怀疑你的板子或者烧录器有问题之所以出现购买的成品板可以烧录成功自制或更换芯片后不成功的现象是因为成品板上的芯片出厂前已经提前烧录过16MHz外部晶振熔丝和引导程序适用于板子上的16MHz晶振所以二次烧录会成功但是新买的空白芯片是默认熔丝内部为8MHz RC时钟通信速率低于USBasp烧录器所以烧录时会失败原因知道了那办法就是降低USBasp烧录器的通信速率与空白芯片一致即可怎么降低速度我们后边再说先说使用Arduino ide进行烧录。使用Arduino ide烧录就比较简单了步骤如下使用AVR USB烧录器连接开发板ICSP接口开发板不需要USB再供电ICSP接口有供电插入电脑打开ide软件设置如下点击工具开发板选择Arduino uno编程器选择USBasp然后点击烧录引导程序当然结果也是失败的指的是全新的芯片而不是买的成品板进行二次烧录报错结果如下图原因也是上述通信速率的问题。这里多说一句ide中的端口为灰色这个不用管因为USBasp不是串口通信所以不显示只要我们能在电脑中看到识别USBasp即可。到此为止两种烧录方式讲解完毕接下来我们来讲如何降低USBasp通信速率保证我们能够正常烧录bootloader步骤如下1.按住WINR输入cmd命令然后再输入cd我们Arduino引导程序的位置路径即上边说的328.hex文件存储的位置复制路径在这个界面右键一下自动粘贴防止手动输入错误cd和路径之间有一个空格回车之后便进入到该目录输入dir看到328.hex文件说明目录正确。2.然后输入下边这条命令修改速率14090为安装位置需修改C:\Users\14090\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\bin\avrdude.exe -C C:\Users\14090\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\etc\avrdude.conf -c usbasp -p m328p -B 10 -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0x05:m -U flash:w:optiboot_atmega328.hex:i执行命令后可以看到修改参数、烧录进程等待结束即可看到下图提示代表bootloader烧写成功此时我们的烧录就结束了开发板可以正常使用了按一下开发板复位键可以看到IO13接口的指示灯快闪三次如果没有这个指示灯也没有关系回到Arduino ide中再次进行引导程序烧录就可以成功二次烧录了。然后烧录一个我们写的测试程序接入OLED显示屏确认功能没问题。下边我们来对这条修改速率、能够匹配通信的指令进行解析C:\Users\14090\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\bin\avrdude.exe指AVR单片机官方烧录工具默认放在我们这个路径下用来读写ATmega系列芯片闪存、熔丝位-C C:\Users\14090\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\etc\avrdude.conf指定配置文件 avrdude.conf-c指编程器类型usbasp-p指目标单片机型号m328p-B指设置ISP通信时钟周期默认USBasp速度快全新芯片出厂内部8MHz时钟高速容易通信失败-B 10降低通信速率提升空白芯片烧录成功率数值越大速度越慢、稳定性越强-U lfuse:w:0xFF:m中U指读写指令格式lfuse低位熔丝位w写入0xFF为UNO标准低位熔丝启用外部16MHz晶振m 从内存写入熔丝-U hfuse:w:0xDE:m中U指读写指令格式hfuse高位熔丝位w写入0xDE为UNO标准高位熔丝启用外部16MHz晶振m 从内存写入熔丝-U efuse:w:0x05:m中U指读写指令格式efuse扩展熔丝位配置BOD掉电检测电压等辅助功能w写入0x05适配UNO电路参数m从内存写入熔丝-U flash:w:optiboot_atmega328.hex:i中U指读写指令格式flash是程序闪存区w写入optiboot_atmega328.hexUNO引导程序Bootloaderi 代表输入文件为Intel Hex格式固件。今天的教程就到此结束了如果有疑问或不同见解可在评论区留言讨论感谢大家。
AI 创业假设验证:先证明有人痛,再证明模型强 AI 创业假设验证:先证明有人痛,再证明模型强 一、技术亮点不是商业假设 很多 AI 创业项目一开始会强调模型能力:生成更准、响应更快、流程更自动。但商业上更关键的问题是,用户是否真的痛,痛到愿意改变流程ÿ…
聪明的小羊 一只小羊翻过了2个栅栏 fa{fe13f590lg6d46d0d0}考点:栅栏换位密码、杂项字符过滤。根据题目提示,是“栅栏密码”,又因为描述中有“2”,所以,key2. 使用在线工具: http://www.hiencode.com/railfence.html 得…
恋活!HF Patch终极指南:一键解锁完整游戏体验 恋活!HF Patch终极指南:一键解锁完整游戏体验 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch 还在为《恋活!》…
若依系统登录密码RSA加密实战:jsencrypt前端加密与Spring Boot后端解密 1. 项目概述与核心价值最近在重构一个基于若依框架的后台管理系统,登录模块的安全加固是首要任务。虽然若依本身提供了强大的权限和用户管理,但在默认配置下,登录时的密码传输仍然是明文或简单的MD5哈希,这在网络层面存在被截获的…
探索虚幻引擎游戏资产的终极利器:FModel深度解析与实战指南 探索虚幻引擎游戏资产的终极利器:FModel深度解析与实战指南 【免费下载链接】FModel Unreal Engine Archives Explorer 项目地址: https://gitcode.com/gh_mirrors/fm/FModel 在虚幻引擎游戏开发与逆向工程领域,FModel作为一款开源的归档浏览器工…
告别技术空谈:九尾狐AI发布2026年最新企业AI培训体系,主推‘战略到变现‘全周期陪跑模式 AI短视频矩阵运营:2026企业培训如何实现从战略到变现的全周期陪跑 作为一名长期在一线协助中小企业落地AI应用的博主,我见过太多这样的场景:老板花大价钱请了团队做培训,员工课上听得热血沸腾,回到工位却无从下手&…
Scikit-learn 1.5.0 心脏病预测实战:5种分类算法调参与模型融合策略 Scikit-learn 1.5.0 心脏病预测实战:5种分类算法调参与模型融合策略1. 数据预处理与特征工程在开始建模之前,我们需要对心脏病数据集进行全面的预处理。高质量的数据预处理往往能显著提升模型性能,这比单纯调整模型参数更有效。数据清洗的关键…
JVM垃圾收集器:从理论到生产环境的落地选择 如果说垃圾回收算法是内存管理的“道”(方法论),那么垃圾收集器则是具体的“术”(实现手段)。在JVM的世界里,不同的收集器针对不同的应用场景而生,理解它们的特性是构建高性能、低延迟系统的基石。 主流垃圾收集器解析 1. Serial:单线程的“经典之作” 作为JVM最古老…
3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾为Windows右键菜单中那些…
GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复 如果你正在用 GXDE OS 或者任何基于 Deepin 的发行版,并且遇到了“检测到窗口系统采用 Wayland 协议,程序即将退出”这类弹窗,或者发现 VMware Tools 在 Ubuntu 24.04 这类默认 Wayland 的系统上启动失败,那这篇文章就是为你准备的…
企业AI落地困境与AgenticOps实践指南 1. 企业AI落地的现实困境与破局之道过去两年,大模型技术呈现爆发式增长,从GPT-3到GPT-4,从LLaMA到DeepSeek,模型参数规模从百亿级跃升至万亿级,多模态能力从单一文本扩展到图文音视频的综合处理。然而在企业应用层面&a…
3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾为Windows右键菜单中那些…
GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复 如果你正在用 GXDE OS 或者任何基于 Deepin 的发行版,并且遇到了“检测到窗口系统采用 Wayland 协议,程序即将退出”这类弹窗,或者发现 VMware Tools 在 Ubuntu 24.04 这类默认 Wayland 的系统上启动失败,那这篇文章就是为你准备的…
企业AI落地困境与AgenticOps实践指南 1. 企业AI落地的现实困境与破局之道过去两年,大模型技术呈现爆发式增长,从GPT-3到GPT-4,从LLaMA到DeepSeek,模型参数规模从百亿级跃升至万亿级,多模态能力从单一文本扩展到图文音视频的综合处理。然而在企业应用层面&a…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…