Atmel Studio 完整入门教程
第一部分:准备工作
在开始之前,请确保您已经准备好以下物品:

-
硬件:
- 一块开发板: 最推荐的是 Atmel STARTER KIT (ATxmega 开发板) 或 AVR Dragon 评估板,如果没有开发板,也可以使用一块带有 AVR 微控制器(如 ATmega328P,也就是 Arduino UNO 的核心)的自制板。
- USB 数据线: 用于连接开发板和电脑。
- 一个 LED: 如果您的开发板没有预装 LED,需要准备一个。
- 一个 330Ω 电阻: 用于保护 LED,防止电流过大烧毁。
-
软件:
- Atmel Studio: 这是 Atmel 官方提供的免费集成开发环境,您可以从 Microchip 官网下载。
- 下载地址: https://www.microchip.com/en-us/tools-resources/develop/microchip-studio
- 注意: 安装时,它会自动安装必要的编译器(GCC for AVR/ARM)和调试器驱动程序。
- Atmel Studio: 这是 Atmel 官方提供的免费集成开发环境,您可以从 Microchip 官网下载。
第二部分:创建第一个项目 - LED 闪烁
"LED 闪烁" 是嵌入式开发的 "Hello, World!",它将帮助我们熟悉整个开发流程。
步骤 1:创建新项目
-
打开 Atmel Studio。
(图片来源网络,侵删) -
在欢迎界面,点击 "New Project" (新建项目)。
-
在弹出的对话框中:
- 选择 "GCC C Executable Project" (GCC C 可执行项目),这意味着我们将用 C 语言编写代码。
- 在下方的 "Project name" (项目名称) 中输入一个有意义的名字,
Blink_LED。 - 在 "Location" (位置) 中选择一个您希望保存项目的文件夹。
- 点击 "OK"。
-
Atmel Studio 会询问您要为哪个微控制器编程,它会自动检测您连接的硬件,如果没有检测到,您需要手动选择。
- 在 "Device selector" (设备选择器) 中,找到您的开发板上使用的微控制器型号,如果您使用的是 Arduino UNO,就选择
ATmega328P。 - 点击 "OK"。
- 在 "Device selector" (设备选择器) 中,找到您的开发板上使用的微控制器型号,如果您使用的是 Arduino UNO,就选择
一个空白的项目已经创建好了,您会看到左侧的 "Solution Explorer" (解决方案资源管理器) 中显示了您的项目文件,main.c 是主源代码文件。

步骤 2:编写代码
- 在 "Solution Explorer" 中双击
main.c文件,打开代码编辑器。 - 删除所有默认的注释代码 ()。
- 将以下代码复制并粘贴到
main.c中:
#include <avr/io.h> // 包含 AVR 输入/输出头文件,用于访问寄存器
#include <util/delay.h> // 包含延时头文件,用于 _delay_ms() 函数
int main(void)
{
// 将 LED 连接的引脚设置为输出模式
// 假设 LED 连接在 PB5 引脚 (Arduino UNO 上的 D13)
// DDRB 是 Data Direction Register B,设置某一位为 1,则对应引脚为输出。
DDRB |= (1 << PB5);
// 无限循环
while (1)
{
// 将 PB5 引脚设置为高电平 (点亮 LED)
PORTB |= (1 << PB5);
_delay_ms(500); // 延时 500 毫秒
// 将 PB5 引脚设置为低电平 (熄灭 LED)
PORTB &= ~(1 << PB5);
_delay_ms(500); // 延时 500 毫秒
}
}
代码解释:
#include <avr/io.h>:包含了所有 AVR 微控制器寄存器定义的头文件,没有它,我们就无法操作DDRB或PORTB。#include <util/delay.h>:包含了延时函数_delay_ms()的定义。DDRB |= (1 << PB5);:DDRB是 B 端口的数据方向寄存器,这行代码将DDRB的第 5 位(对应引脚PB5)设置为 1,表示PB5引脚被配置为输出模式。PORTB |= (1 << PB5);:PORTB是 B 端口的输出寄存器,这行代码将PORTB的第 5 位置 1,使得PB5输出高电平(约 5V),从而点亮 LED。PORTB &= ~(1 << PB5);:这行代码将PORTB的第 5 位清 0,使得PB5输出低电平(0V),从而熄灭 LED。_delay_ms(500);:让程序暂停 500 毫秒。
步骤 3:编译项目
在将代码烧录到芯片之前,我们需要先将其编译成微控制器可以理解的机器码。
-
点击顶部菜单栏的 "Build" (构建)。
-
选择 "Build Solution" (生成解决方案)。
-
如果一切顺利,下方的 "Output" (输出) 窗口会显示编译成功的信息,并生成
.elf、.hex等文件。.hex文件是我们将要烧录到芯片中的最终文件。
步骤 4:烧录和调试
现在是最激动人心的部分:让您的 LED 闪烁起来!
使用 Atmel ICE 或 J-Link 等硬件调试器 (推荐)
这是最专业、最强大的方法,支持在线调试。
- 连接硬件: 将 Atmel ICE 或 J-Link 调试器通过其适配器连接到开发板的调试接口(如 JTAG 或 PDI)。
- 配置工具:
- 点击顶部菜单栏的 "Debug" (调试)。
- 选择 "Tools" (工具) -> "Device Programming" (器件编程)。
- 在左侧选择您的调试器(如 Atmel ICE)。
- 在右侧选择您的目标设备(如 ATmega328P)。
- 点击 "Apply"。
- 烧录代码:
- 在 " memories " 标签页中,点击 "..." 按钮,选择您刚刚编译生成的
Blink_LED.hex文件。 - 点击 "Program" (编程) 按钮,等待进度条完成。
- 在 " memories " 标签页中,点击 "..." 按钮,选择您刚刚编译生成的
- 开始调试:
- 关闭 "Device Programming" 窗口。
- 点击顶部工具栏的 "Start Debugging and Break" (开始调试并中断) 按钮 (图标像一个黄色的带箭头的播放按钮)。
- 程序会自动下载到芯片中,并在
main()函数的第一行停止。 - 按下 F5 (Continue) 或点击绿色的 "Go" 按钮,程序开始运行,您应该能看到开发板上的 LED 开始闪烁!
使用 USBasp 或其他编程器
这是一种常见的低成本烧录方法。
- 连接硬件: 将 USBasp 编程器连接到开发板的 ISP (In-System Programmer) 接口。
- 烧录代码:
- 同样地,进入 "Debug" -> "Tools" -> "Device Programming"。
- 选择工具为 "USBASP",选择设备为 "ATmega328P"。
- 加载
.hex文件并点击 "Program"。
- 运行: 烧录完成后,断开编程器,给开发板上电,LED 就会自动闪烁。
第三部分:核心功能详解
Atmel Studio 界面介绍
- 菜单栏: 包含所有操作命令,如文件、编辑、构建、调试等。
- 工具栏: 提供常用功能的快捷按钮,如新建、保存、构建、开始调试等。
- Solution Explorer (解决方案资源管理器): 位于左侧,显示项目的文件结构。
- Code Editor (代码编辑器): 位于中间,是您编写代码的地方,支持语法高亮、自动补全。
- Output (输出) 窗口: 位于下方,显示编译、构建和调试过程中的信息、警告和错误。
- Debug (调试) 窗口: 当您启动调试时,会自动显示,包含:
- Locals (局部变量): 自动显示当前函数中的变量及其值。
- Watch (监视): 您可以手动添加想要监视的变量或表达式。
- Call Stack (调用堆栈): 显示函数的调用关系。
调试功能详解
调试是开发过程中最重要的环节,Atmel Studio 提供了强大的调试功能。
- 设置断点: 在代码编辑器的行号左侧单击,会出现一个红点,当程序运行到这一行时会自动暂停。
- 单步执行:
- F11 (Step Into): 如果当前行是一个函数调用,会进入该函数内部。
- F10 (Step Over): 执行当前行,如果是函数调用,则一次性执行完整个函数,不会进入函数内部。
- Shift + F11 (Step Out): 跳出当前正在执行的函数。
- 查看变量:
- 在调试时,将鼠标悬停在变量上,可以查看其当前值。
- 在 "Watch" 窗口中,可以输入变量名来持续监视其变化。
- 修改内存/寄存器: 在调试过程中,您可以右键点击寄存器或内存地址,选择 "Modify" (修改) 来实时改变其值,这对于硬件测试非常有用。
第四部分:进阶技巧与资源
使用 ASF (Advanced Software Framework)
Atmel Studio 提供了 ASF 库,它是一套经过官方优化的驱动程序和示例代码,可以大大简化开发。
- 如何使用:
- 创建新项目时,选择 "ASF Wizard"。
- 在向导中,选择您使用的微控制器。
- 在左侧的 "Available Drivers" (可用驱动) 中,勾选您需要的功能,"GPIO" (用于控制 LED)、"USART" (用于串口通信) 等。
- 点击 "Generate",ASF 会自动为您生成包含初始化代码和示例的完整项目。
安装第三方插件
Atmel Studio 支持插件扩展,一个非常流行的插件是 Visual Micro,它可以让您在 Atmel Studio 中使用 Arduino 的库和开发方式,实现两种环境的无缝切换。
官方资源
- Microchip 官方文档: https://www.microchip.com/wwwproducts/en/ - 查找您所用芯片的数据手册和应用笔记,数据手册是您的“圣经”。
- Atmel Studio 示例: Atmel Studio 安装目录下有大量示例项目。
- Microchip 论坛: https://www.microchip.com/forums/ - 寻求帮助和交流的好地方。
通过这份教程,您已经掌握了使用 Atmel Studio 进行 AVR 微控制器开发的基本流程:
- 创建项目
- 编写代码
- 编译项目
- 烧录/调试
这只是 Atmel Studio 强大功能的冰山一角,随着您经验的积累,可以深入学习 ASF 框架、使用中断、配置定时器、进行 ADC 采样等更高级的功能,祝您学习愉快!
