news 2026/5/29 18:21:18

利用Arduino Uno作为ISP编程器烧录ATtiny85微控制器全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
利用Arduino Uno作为ISP编程器烧录ATtiny85微控制器全攻略

1. 项目概述与核心价值

如果你玩过Arduino,大概率会感叹它的易用性,但也会为它的“大块头”和相对较高的成本感到一丝遗憾——尤其是在一些只需要控制一两个LED或者读取一个传感器的简单项目里。这时候,像ATtiny85这样的“小个子”微控制器就闪亮登场了。它只有8个引脚,体积比你的小拇指指甲盖还小,功耗极低,但“五脏俱全”,能跑完整的C/C++程序,是制作小型、便携、电池供电设备的绝佳选择。

然而,给这个小家伙编程,一开始可能会让人有点犯怵。它不像Arduino Uno那样插上USB就能写程序。传统的做法是购买一个专用的AVR编程器,这又是一笔开销和学习成本。但你知道吗?你手边那块吃灰的Arduino Uno,本身就是一个绝佳的、现成的编程器。通过一个叫做“在系统编程”(ISP)的技术,我们可以把Uno“变身”为连接电脑和ATtiny85的桥梁。本指南要做的,就是带你走通这条极具性价比的路径:如何将Arduino Uno配置成ISP编程器,并使用在线平台Codebender,为ATtiny85编写和烧录程序。整个过程,你只需要一块Uno、一块ATtiny85、几根杜邦线和一个电容,无需其他专用设备。这不仅是节省几十块钱的事,更是让你深入理解微控制器编程底层逻辑的绝佳实践。无论你是想制作超小的闪烁徽章、微型数据记录器,还是简单的传感器节点,掌握这项技能都能让你的项目灵活度大大提升。

2. 硬件解析与核心原理

2.1 ATtiny85微控制器深度剖析

ATtiny85是Atmel(现被Microchip收购)AVR家族中的一位“迷你悍将”。别看它只有8个引脚,其内部架构和指令集与经典的ATmega328P(Arduino Uno的主控)同宗同源。我们来拆解一下它的核心资源:

  • 8KB ISP闪存:这是存放你程序代码的地方。对于简单的控制逻辑、状态机、传感器数据处理来说,8KB空间其实相当充裕。一个让LED闪烁的“Blink”程序编译后通常只有几百字节。
  • 512B EEPROM:断电后数据不会丢失的存储器。适合存储需要长期保存的配置参数,比如校准值、设备ID、运行次数等。
  • 512B SRAM:程序运行时的“工作台”,用于存放变量、函数调用栈等。这是ATtiny85最紧张的资源,编程时需要特别注意内存管理,避免使用过大的全局数组或递归函数。
  • 6个通用I/O引脚:其中3个支持PWM(引脚0,1,4),可用于调光或模拟信号输出;4个支持ADC(引脚2,3,4,5),可以读取模拟电压。这意味着你至少可以同时连接并控制多个外设。
  • 工作电压:2.7V - 5.5V。这个宽电压范围是其低功耗特性的基础,意味着你可以直接用两节AA电池(3V)或一个锂电池(3.7V)直接供电,无需额外的稳压电路,极大简化了电源设计。

它的引脚排列是理解连接的基础。想象一下,芯片上有一个小圆点或凹槽,那标记的是第1脚(RESET)。逆时针数下去:

  • Pin 1 (PB5): 复位引脚(RESET)。编程时,编程器通过拉低这个引脚来让芯片进入编程模式。
  • Pin 2 (PB3): 数字I/O 3,也是ADC输入3。
  • Pin 3 (PB4): 数字I/O 4,也是ADC输入2。
  • Pin 4 (GND): 电源地。
  • Pin 5 (PB0): 数字I/O 0,支持PWM。在Arduino核心中常被映射为数字引脚0。
  • Pin 6 (PB1): 数字I/O 1,支持PWM。映射为数字引脚1。
  • Pin 7 (PB2): 数字I/O 2,支持PWM和ADC。映射为数字引脚2。
  • Pin 8 (VCC): 电源正极(2.7-5.5V)。

注意:ATtiny85的引脚编号(物理引脚)与在Arduino IDE中使用的“数字引脚编号”是两个概念。例如,物理引脚7(PB2)在代码中我们通常用数字引脚2来操作。这一点在接线和编程时务必分清,否则程序无法控制预期的引脚。

2.2 Arduino Uno作为ISP编程器的工作原理

Arduino Uno本身就是一个基于ATmega328P的开发板。当我们向它上传“Arduino as ISP”这个特殊的固件(Sketch)后,它就变身了。这个固件实现了AVR ISP协议,让Uno的MCU扮演了“翻译官”和“信使”的角色。

具体来说,这个固件会做以下几件事:

  1. 协议转换:它通过Uno的USB转串口芯片(如CH340或ATmega16U2)接收来自电脑上位机软件(如Arduino IDE、avrdude)的指令。这些指令遵循某种高级通信协议(如STK500)。
  2. 信号模拟:Uno上的ATmega328P根据接收到的指令,通过软件精确地控制其特定的I/O引脚(通常是D10, D11, D12, D13),模拟出AVR编程所需的硬件信号时序,包括:
    • SCK (Serial Clock): 时钟信号,由D13产生。
    • MOSI (Master Out Slave In): 主设备输出,从设备输入,即Uno向ATtiny85发送数据,对应D11。
    • MISO (Master In Slave Out): 主设备输入,从设备输出,即ATtiny85向Uno返回数据,对应D12。
    • RESET: 复位控制,由D10产生。通过拉低此引脚使目标芯片进入编程模式。
  3. 电源管理:Uno同时为ATtiny85提供稳定的5V电源(VCC)和共地(GND)。

为什么需要那个10uF电容?这是整个设置中最容易忽略但至关重要的一步。当我们将Uno通过USB连接到电脑时,电脑的串口通信会不时地触发Uno板载的自动复位功能(通过DTR信号),以确保其处于可编程状态。但当Uno作为编程器时,我们不希望它自己被复位,否则编程会话会中断。在Uno的RESET引脚和GND之间并联一个10uF以上的电容,可以有效地“吸收”或延缓这个复位脉冲,使其无法达到让ATmega328P复位的电压阈值,从而稳定了编程器的状态。电容的正极接RESET,负极接GND。

3. 硬件连接与搭建实操

3.1 物料清单与工具准备

除了核心的Arduino Uno和ATtiny85,你需要准备以下物品,建议在动手前清点一遍:

  • 面包板:一块,用于免焊接搭建电路,方便测试和修改。
  • 杜邦线:公对公跳线,至少需要6-7根。颜色上建议遵循惯例:红色(VCC)、黑色(GND)、黄色(SCK)、白色(MOSI)、蓝色(MISO)、绿色(RESET),这样在复杂的连接中不易出错。
  • 10uF电解电容:1个。注意极性,长脚为正极,壳体上有白色条纹标记的是负极。
  • USB数据线:用于连接Arduino Uno和电脑。
  • 可选-LED与220欧姆电阻:用于后续的程序测试,验证编程是否成功。

3.2 分步连接指南与原理图解读

连接遵循“编程接口”和“电源”两部分进行。请务必在断电(拔掉Uno的USB线)状态下操作。

第一步:放置芯片与连接电源

  1. 将ATtiny85插入面包板,注意方向(凹槽或圆点朝向左侧)。
  2. 用一根红线,从Arduino Uno的5V引脚连接到面包板的正极电源轨。
  3. 用一根黑线,从Arduino Uno的GND引脚连接到面包板的负极电源轨。
  4. 用短线将ATtiny85的Pin 8 (VCC)连接到正极电源轨。
  5. 用短线将ATtiny85的Pin 4 (GND)连接到负极电源轨。至此,ATtiny85已通电。

第二步:连接SPI编程接口这是核心的数据通道,必须一一对应准确:

  1. 时钟线 (SCK): 用一根线(如黄色),连接Arduino Uno的数字引脚13 (D13)到ATtiny85的Pin 7 (PB2)。时钟信号由主设备(Uno)产生,同步数据传输。
  2. 数据输出线 (MOSI): 用一根线(如白色),连接Arduino Uno的数字引脚11 (D11)到ATtiny85的Pin 6 (PB1)。这是Uno向ATtiny85发送指令和程序数据的通道。
  3. 数据输入线 (MISO): 用一根线(如蓝色),连接Arduino Uno的数字引脚12 (D12)到ATtiny85的Pin 5 (PB0)。这是ATtiny85向Uno返回状态、校验等信息的通道。

第三步:连接复位控制线

  1. 用一根线(如绿色),连接Arduino Uno的数字引脚10 (D10)到ATtiny85的Pin 1 (RESET)。编程器通过控制此线的高低电平来让目标芯片进入或退出编程模式。

第四步:安装防复位电容

  1. 将10uF电解电容的正极(长脚)连接到Arduino Uno的RESET引脚。
  2. 将电容的负极(短脚/有标记一侧)连接到Arduino Uno的GND引脚。 这个电容可以焊接在Uno板上,也可以插在Uno引脚插槽对应的面包板孔位里。确保连接牢固。

完成后的连接关系总结如下表,方便你复查:

Arduino Uno 引脚连接至 ATtiny85 引脚信号名称作用
D10Pin 1 (RESET)RESET控制目标芯片进入编程模式
D11Pin 6 (PB1)MOSI主设备数据输出,发送编程数据
D12Pin 5 (PB0)MISO主设备数据输入,接收响应
D13Pin 7 (PB2)SCK同步时钟信号
5VPin 8 (VCC)VCC提供5V电源
GNDPin 4 (GND)GND共地,建立参考电平

实操心得:在面包板上连接时,尽量让线材横平竖直,避免交叉缠绕。每连接好一组(如电源、SPI三线),就对照表格检查一次。连接RESET线和安装电容是成败关键,务必确认无误。通电前,最后目视检查一遍,防止VCC和GND短路。

4. 软件环境配置与编程器固件烧录

4.1 配置Arduino IDE支持ATtiny85核心

虽然本指南主要使用Codebender,但了解并配置本地Arduino IDE是更通用的技能,且Codebender的底层也依赖于相同的核心。我们首先完成这一步。

  1. 打开Arduino IDE: 启动你的Arduino IDE(建议版本1.8.x或更高)。
  2. 打开首选项: 点击文件->首选项。在“附加开发板管理器网址”一栏,填入以下URL:
    https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
    如果你已有其他网址,可以用逗号分隔添加。
  3. 安装ATtiny核心: 点击工具->开发板->开发板管理器...。在搜索框中输入“attiny”。你会找到由David A. Mellis提供的“attiny”包。点击并选择安装最新版本。
  4. 选择开发板与参数: 安装完成后,再次点击工具->开发板,现在列表中应该出现了“ATtiny”系列。选择ATtiny25/45/85。然后,在工具菜单下依次设置:
    • 处理器ATtiny85
    • 时钟内部 8 MHz(默认)。这是ATtiny85内置的RC振荡器,对于大多数应用足够准确且无需外接晶振。
    • 编程器: 暂时保持默认,我们下一步会用到。

4.2 烧录“Arduino as ISP”固件到Uno

现在,我们要把Uno变成编程器。

  1. 选择正确的开发板和端口: 在工具菜单下,确保开发板选择的是Arduino Uno,并且正确的COM端口已被选中(你的Uno连接的端口)。
  2. 打开示例程序: 点击文件->示例->11. ArduinoISP->ArduinoISP。这会打开一个名为“ArduinoISP”的草图。
  3. 上传固件: 像给普通Arduino项目上传程序一样,点击上传按钮(向右的箭头)。等待编译和上传完成,提示“上传成功”。
  4. 验证与理解: 上传成功后,Uno板上的“L”指示灯可能会以不同模式闪烁,这是ArduinoISP固件运行的状态指示(例如,心跳闪烁表示等待,快速闪烁表示编程中)。此时,你的Uno已经不再是一个普通的开发板,而是一个专用于AVR芯片的ISP编程器了。

注意事项: 这个“ArduinoISP”固件会一直驻留在Uno的ATmega328P中。如果你想将Uno恢复为普通开发板,只需要像往常一样,给它上传一个新的草图(比如Blink)即可覆盖掉这个ISP固件。

5. 使用Codebender在线平台编程ATtiny85

5.1 Codebender平台简介与项目创建

Codebender是一个基于浏览器的Arduino集成开发环境(IDE),它的最大优势是无需安装,且内置了对多种开发板和编程器的支持,包括我们刚配置好的“Arduino as ISP”。

  1. 注册与登录: 访问Codebender官网,创建一个免费账户并登录。
  2. 安装浏览器插件: 为了与硬件通信,Codebender需要一个小插件。网站通常会提示你安装,按照指引完成即可。
  3. 创建新项目: 在仪表盘点击“Create New Sketch”。你会看到一个熟悉的代码编辑界面。
  4. 配置开发板与编程器
    • 在编辑器上方,找到开发板选择下拉菜单。你需要搜索并选择ATtiny,然后选择具体的ATtiny85
    • 接下来,关键的一步是选择编程器。在编程器选项中,选择Arduino as ISP。这告诉Codebender,我们将通过一个运行着ArduinoISP固件的Uno来烧录程序。

5.2 编写第一个测试程序并烧录

我们来编写一个最简单的程序,点亮连接在ATtiny85物理引脚2(即Arduino数字引脚3)上的LED。

  1. 编写代码: 在代码编辑区,输入以下内容:
    // 定义LED连接的引脚。ATtiny85的物理引脚2对应Arduino引脚编号3。 const int ledPin = 3; void setup() { // 将LED引脚设置为输出模式 pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); // 点亮LED delay(1000); // 等待1秒 digitalWrite(ledPin, LOW); // 熄灭LED delay(1000); // 等待1秒 }
  2. 连接硬件: 确保你的硬件连接如第三章所述完全正确,并且Uno已通过USB连接到电脑。在ATtiny85的物理引脚2和GND之间,连接一个LED(长脚为正,接引脚2)和一个220欧姆的限流电阻(串联在任意一端)。
  3. 编译与烧录
    • 在Codebender界面,点击“编译”按钮检查代码错误。
    • 编译无误后,点击“烧录”或“上传”按钮。Codebender会通过浏览器插件与你的Uno通信。
    • 此时,观察Uno和ATtiny85。你会看到Uno板上的指示灯(通常是D13旁的LED)快速闪烁,这表明编程器正在与ATtiny85通信并烧录程序。
    • 烧录成功后,Codebender会显示成功信息。
  4. 独立运行测试这是非常重要的一步。烧录完成后,首先拔掉Uno的USB线,切断所有电源。然后,只将Uno的5V和GND引脚继续连接到ATtiny85的VCC和GND,为其供电。此时,ATtiny85应该脱离编程模式,独立运行刚才烧录的程序。如果连接了LED,你应该能看到它开始以1秒的间隔闪烁。如果LED不亮,请检查LED和电阻的连接极性及是否牢靠。

实操心得:使用在线IDE如Codebender时,浏览器的兼容性和插件稳定性有时会影响连接。如果遇到无法识别端口或上传失败的情况,可以尝试换用Chrome或Edge浏览器,并确保插件已正确启用。此外,在线平台的响应速度依赖于网络,对于大型项目,本地Arduino IDE可能更稳定。

6. 深入配置:时钟、引脚映射与熔丝位

6.1 理解并配置ATtiny85的时钟源

ATtiny85默认使用内部1MHz的RC振荡器。但我们之前选择的是“内部 8 MHz”。为什么?因为Arduino核心库的许多延时函数(如delay())和通信库(如SoftwareSerial)的时序是基于16MHz(标准Uno)或8MHz(常见配置)计算的。使用8MHz能获得更准确的延时和更好的兼容性。

在Arduino IDE中配置时钟非常简单,如前所述,在工具->时钟菜单中选择即可。但在底层,这实际上是通过设置芯片的“熔丝位”(Fuse Bits)来实现的。熔丝位是一种特殊的非易失性配置存储器,决定了芯片上电时的行为。当你选择“内部 8 MHz”并点击烧录时,编程器(我们的Uno ISP)会先根据你的选择,计算出对应的熔丝位值并写入芯片,然后再烧录你的程序。

重要提示:错误的熔丝位设置(例如误选了需要外接晶振的选项但你没接晶振)可能导致芯片无法启动,看起来像“变砖”。但ATtiny85的SPI接口在复位引脚被拉低时是始终可用的,因此你总是可以通过高压并行编程器或正确的ISP连接(就像我们正在做的)来重新配置熔丝位,使其“复活”。所以,操作时谨慎选择即可,无需过度担心。

6.2 ATtiny85的Arduino引脚映射详解

这是新手最容易混淆的地方。ATtiny85的物理引脚、端口位(PBx)和Arduino IDE中使用的数字引脚编号,三者关系必须理清。

我们通常使用Arduino的引脚编号来编程。对于ATtiny85,其映射关系由我们安装的“attiny”核心定义。常见的映射如下(以“内部8MHz”时钟配置下的标准映射为例):

物理引脚芯片端口位Arduino 引脚编号模拟输入编号PWM支持
1PB5(仅作RESET, 通常不作为数字I/O)
2PB33A3
3PB44A2
4GND
5PB00(ADC0)
6PB11(ADC1)
7PB22(ADC2)
8VCC

核心要点

  • 在代码中,你使用digitalWrite(0, HIGH)控制的是物理引脚5。
  • 模拟输入analogRead(A3)读取的是物理引脚2。
  • 物理引脚5, 6, 7支持analogWrite()进行PWM输出。

6.3 使用Arduino IDE进行高级烧录

配置好核心并烧录好ISP固件后,你也可以完全使用本地Arduino IDE来完成对ATtiny85的编程,这通常更快捷稳定。

  1. 连接与配置: 硬件连接不变。在Arduino IDE中,工具菜单下依次选择:
    • 开发板ATtiny25/45/85
    • 处理器ATtiny85
    • 时钟内部 8 MHz
    • 编程器Arduino as ISP(这是关键!)
  2. 烧录引导程序: 这是一个可选的但推荐的操作。点击工具->烧录引导程序。这个过程会做两件事:一是根据你选择的时钟频率,写入正确的熔丝位;二是(如果核心支持)可能会烧录一个微小的引导程序。对于ATtiny85,通常只是设置熔丝位。看到“烧录引导程序完成”的提示即可。
  3. 上传程序: 现在,你可以像给Uno上传程序一样,打开你的代码(例如前面的Blink代码),直接点击上传按钮(→)。IDE会通过我们指定的“Arduino as ISP”编程器,将程序编译并烧录到ATtiny85中。上传进度条会显示“通过编程器上传...”。

7. 常见问题排查与实战技巧

7.1 问题排查速查表

在实践过程中,你可能会遇到以下问题。这里提供一个快速排查指南:

问题现象可能原因排查步骤与解决方案
上传失败,提示“进入编程模式错误”或“设备签名不正确”1. 硬件连接错误或松动。
2. ATtiny85未正确供电。
3. 10uF电容未接或接反。
4. 目标芯片型号选择错误。
1.断电,逐根检查所有6根信号线和电源线,确保与表格完全一致,接触牢固。
2. 用万用表测量ATtiny85的Pin 8 (VCC)和Pin 4 (GND)之间电压,应为稳定的5V左右。
3. 确认10uF电容正极接Uno RESET,负极接GND。
4. 在IDE中确认选择的处理器是“ATtiny85”,而不是其他型号。
Codebender无法识别端口或编程器1. 浏览器插件未安装或未启用。
2. Uno的“ArduinoISP”固件未成功烧录。
3. 操作系统驱动问题。
1. 检查浏览器扩展管理,确保Codebender插件已启用。尝试重启浏览器。
2. 回到Arduino IDE,尝试重新给Uno上传一次“ArduinoISP”示例程序。
3. 尝试换用Chrome浏览器,或在设备管理器中检查Uno的COM端口驱动是否正常。
程序上传成功,但ATtiny85不工作(如LED不闪)1. 独立供电环节出错。
2. 程序引脚编号写错。
3. 外设(LED/电阻)连接错误或损坏。
1.确保已拔掉USB线,仅通过Uno的5V和GND为ATtiny85供电进行测试。编程模式下芯片行为可能不同。
2. 仔细核对代码中的引脚编号与物理引脚映射表。用digitalWrite(3, HIGH)测试物理引脚2。
3. 检查LED极性(长脚正极),确认电阻已串联,且回路连接到GND。可用万用表通断档测试。
可以烧录一次,但第二次无法烧录可能误操作了熔丝位,特别是禁用了SPI编程。这是最棘手的情况。确保在IDE中时钟源选择的是“内部 8 MHz”这类无需外接元件的选项。如果已“变砖”,需确保连接可靠,尝试在IDE中再次执行“烧录引导程序”,这通常会重置熔丝位到正确状态。

7.2 实战技巧与经验分享

  1. 制作一个专用的编程底座: 如果你需要频繁地对ATtiny85进行编程,可以考虑用一块洞洞板或一个IC插座,按照第三章的连接图,焊接一个固定的编程接口。把Uno的6根线(10, 11, 12, 13, 5V, GND)和电容永久性地引到这个底座上。以后编程时,只需要把ATtiny85芯片插到底座上即可,省去每次接线的麻烦,也大大降低了接错线的风险。
  2. 为ATtiny85添加去耦电容: 在ATtiny85的VCC和GND引脚之间,靠近芯片的位置,焊接或连接一个0.1uF(104)的陶瓷电容。这个去耦电容可以滤除电源线上的高频噪声,提高芯片在复杂电路或长导线供电时的稳定性,是良好的工程实践。
  3. 利用串口调试(软串口): ATtiny85没有硬件串口,但我们可以使用SoftwareSerial库来模拟。这非常有助于调试。例如,你可以将程序状态输出到一个USB转TTL模块,在电脑上查看。注意这会占用两个I/O引脚并消耗一定内存和CPU资源。
    #include <SoftwareSerial.h> SoftwareSerial mySerial(3, 4); // RX, TX (使用引脚3和4) void setup() { mySerial.begin(9600); mySerial.println("ATtiny85 Startup!"); } void loop() { // 你的代码 }
  4. 管理有限的RAM: 512字节的RAM非常有限。避免使用全局大数组,谨慎使用String类(它会产生内存碎片),优先使用char数组和F()宏将字符串常量存放到闪存中,例如Serial.println(F("Hello"));
  5. 低功耗设计考虑: ATtiny85的一大优势是低功耗。在电池供电项目中,你可以在程序中使用#include <avr/sleep.h>库,让芯片在空闲时进入睡眠模式,将电流消耗从毫安级降至微安级,极大延长电池寿命。

掌握了使用Arduino Uno编程ATtiny85的方法,你就打开了一扇通往微型嵌入式世界的大门。这颗成本仅需几元人民币的小芯片,其能力远超你的想象。从简单的定时器到传感器网络节点,从USB小设备到袖珍游戏机,想象力是你的唯一限制。下次当你觉得Arduino Uno太大太耗电时,不妨试试这位“小巨人”,它带来的不仅是体积和功耗的优化,更是一种对资源极致利用的编程思维锻炼。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 18:20:18

基于Arduino与DHT11的智能温湿度监测系统设计与实现

1. 项目概述与核心价值最近在捣鼓一个智能家居的小玩意儿&#xff0c;核心目标很简单&#xff1a;实时监测家里的温度和湿度&#xff0c;并且能直观地显示出来&#xff0c;最好还能根据温度高低给点提示。这听起来像是市面上几十块就能买到的温湿度计&#xff0c;但自己动手做&…

作者头像 李华
网站建设 2026/5/29 18:20:04

如何永久保存微信聊天记录:WeChatMsg完整数据守护指南

如何永久保存微信聊天记录&#xff1a;WeChatMsg完整数据守护指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCha…

作者头像 李华
网站建设 2026/5/29 18:20:04

two aunts and four sister

i have two aunts and four sister in law. split up pass away. how,do i keep this plant alive. they were close to their parents. your nieces laught is very cute. are you close to your cousins.

作者头像 李华
网站建设 2026/5/29 18:14:46

Transformer语音识别解码加速:推测解码与Token Map技术

1. 语音识别中的Transformer与解码效率挑战现代自动语音识别(ASR)系统已经普遍采用Transformer架构&#xff0c;这种基于自注意力机制的模型在转录准确性和鲁棒性方面表现出色。以OpenAI的Whisper模型为例&#xff0c;其采用encoder-decoder结构&#xff0c;通过交叉注意力机制…

作者头像 李华
网站建设 2026/5/29 18:11:47

N_m3u8DL-RE终极指南:如何轻松下载任何在线视频到本地

N_m3u8DL-RE终极指南&#xff1a;如何轻松下载任何在线视频到本地 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …

作者头像 李华