3. 开发环境搭建
在开始使用 NXP 系列的 LPC1100 系列单片机进行开发之前,需要搭建一个合适的开发环境。开发环境包括硬件工具和软件工具两部分。本节将详细介绍如何选择和配置这些工具,以确保您能够顺利地进行单片机的编程和调试。
3.1 硬件工具选择
3.1.1 开发板
LPC1100 系列单片机的开发板是入门级开发的最佳选择。开发板通常集成了单片机、电源管理、USB 接口、调试接口等,方便用户快速上手。NXP 官方和第三方厂商提供了多种开发板,例如:
- LPCXpresso1114:官方提供的开发板,适用于 LPC1114 系列单片机。
- LPC1115-EK:官方提供的评估套件,适用于 LPC1115 系列单片机。
- Third-party Boards:第三方厂商如 Olimex、SparkFun 等也提供了一些开发板,适用于各种 LPC1100 系列单片机。
3.1.2 调试器
调试器是开发环境中不可或缺的一部分,它可以帮助您在单片机上进行程序的下载、调试和运行。常用的调试器有:
- LPC-Link2:NXP 官方提供的调试器,支持多种 LPC 系列单片机。
- J-Link:SEGGER 公司提供的高性能调试器,支持广泛。
- ST-Link:STMicroelectronics 公司提供的调试器,性价比较高。
3.1.3 USB 转串口适配器
在某些情况下,您可能需要通过串口与单片机进行通信。USB 转串口适配器(如 CP2102、FT232R)可以将 USB 信号转换为 TTL 串口信号,方便调试和数据传输。
3.1.4 电源
开发板通常自带电源管理,但如果您使用的是最小系统板或自定义电路,可能需要外接电源。常见的电源设备有:
- USB 供电:大多数开发板可以通过 USB 接口供电。
- 外部电源适配器:用于需要更大电流的项目,如 5V/3.3V 适配器。
3.2 软件工具选择
3.2.1 集成开发环境 (IDE)
集成开发环境是编写、编译和调试代码的主要工具。常见的 IDE 有:
- LPCXpresso IDE:NXP 官方提供的基于 Eclipse 的 IDE,支持 LPC1100 系列单片机。
- Keil MDK-ARM:ARM 官方提供的 IDE,功能强大,支持多种 ARM 单片机。
- IAR Embedded Workbench for ARM:IAR 公司提供的 IDE,性能优越,支持广泛。
3.2.2 编译工具
编译工具将您的源代码编译成单片机可以执行的机器码。常用的编译工具包括:
- GCC for ARM:GNU 编译器集合,支持 ARM 架构,可以通过命令行或 IDE 使用。
- ARM Compiler:ARM 官方提供的编译器,集成在 Keil MDK-ARM 中。
- IAR C-Compiler:集成在 IAR Embedded Workbench for ARM 中。
3.2.3 调试工具
调试工具帮助您在单片机上运行和调试程序。常用的调试工具包括:
- GDB:GNU 调试器,可以通过命令行或 IDE 使用。
- Keil Debugger:集成在 Keil MDK-ARM 中。
- IAR Debugger:集成在 IAR Embedded Workbench for ARM 中。
3.2.4 固件库
固件库提供了丰富的外设驱动和示例代码,可以帮助您快速开发应用。常用的固件库包括:
- LPCOpen:NXP 官方提供的固件库,支持 LPC1100 系列单片机。
- CMSIS (Cortex Microcontroller Software Interface Standard):ARM 官方提供的标准库,支持多种 ARM 单片机。
3.3 开发环境配置
3.3.1 安装 LPCXpresso IDE
-
下载 LPCXpresso IDE:
- 访问 NXP 官方网站,下载 LPCXpresso IDE 安装包。
- 选择适合您操作系统的版本(Windows、Linux、Mac OS)。
-
安装 LPCXpresso IDE:
- 运行下载的安装包,按照提示进行安装。
- 选择安装路径和组件,通常建议选择默认设置。
- 安装完成后,启动 LPCXpresso IDE。
-
配置 LPCXpresso IDE:
- 安装驱动:确保您的调试器(如 LPC-Link2)已经安装了驱动程序。
- 添加 LPC1100 支持:在 LPCXpresso IDE 中,通过 “Help” -> “Install New Software” 添加 LPC1100 系列单片机的支持包。
- 配置项目模板:LPCXpresso IDE 提供了多种项目模板,选择适合您的模板进行配置。
3.3.2 安装 Keil MDK-ARM
-
下载 Keil MDK-ARM:
- 访问 ARM 官方网站,下载 Keil MDK-ARM 安装包。
- 选择适合您操作系统的版本(Windows、Linux、Mac OS)。
-
安装 Keil MDK-ARM:
- 运行下载的安装包,按照提示进行安装。
- 选择安装路径和组件,通常建议选择默认设置。
- 安装完成后,启动 Keil MDK-ARM。
-
配置 Keil MDK-ARM:
- 安装驱动:确保您的调试器(如 J-Link)已经安装了驱动程序。
- 添加 LPC1100 支持:在 Keil MDK-ARM 中,通过 “Project” -> “Manage Run-Time Environment” 添加 LPC1100 系列单片机的支持包。
- 配置项目:创建一个新的项目,选择 LPC1100 系列单片机,配置编译器和调试器。
3.3.3 安装 IAR Embedded Workbench for ARM
-
下载 IAR Embedded Workbench for ARM:
- 访问 IAR 公司官网,下载 IAR Embedded Workbench for ARM 安装包。
- 选择适合您操作系统的版本(Windows、Linux、Mac OS)。
-
安装 IAR Embedded Workbench for ARM:
- 运行下载的安装包,按照提示进行安装。
- 选择安装路径和组件,通常建议选择默认设置。
- 安装完成后,启动 IAR Embedded Workbench for ARM。
-
配置 IAR Embedded Workbench for ARM:
- 安装驱动:确保您的调试器(如 J-Link)已经安装了驱动程序。
- 添加 LPC1100 支持:在 IAR Embedded Workbench for ARM 中,通过 “Help” -> “Register Evaluation” 添加 LPC1100 系列单片机的支持包。
- 配置项目:创建一个新的项目,选择 LPC1100 系列单片机,配置编译器和调试器。
3.4 创建第一个项目
3.4.1 使用 LPCXpresso IDE 创建项目
-
启动 LPCXpresso IDE。
-
创建新项目:
- 选择 “File” -> “New” -> “LPCXpresso Project”。
- 在弹出的对话框中,选择 “LPC1100” 系列单片机。
- 填写项目名称和保存路径。
- 选择项目模板,例如 “Blink LED”。
-
编写代码:
- 打开
main.c
文件,编写简单的 LED 闪烁代码。
- 打开
#include "board.h"
int main(void) {
// 初始化板子
Board_Init();
// 配置 LED 引脚
Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 18, (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGMODE_EN));
// 初始化 GPIO
Chip_GPIO_Init(LPC_GPIO);
// 设置 LED 引脚为输出
Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 18);
while (1) {
// LED 亮
Chip_GPIO_SetPinState(LPC_GPIO, 0, 18, true);
// 延时 500ms
Board_DELAY(500);
// LED 灭
Chip_GPIO_SetPinState(LPC_GPIO, 0, 18, false);
// 延时 500ms
Board_DELAY(500);
}
}
-
编译项目:
- 选择 “Project” -> “Build Project” 进行编译。
- 如果编译成功,会在输出窗口中显示 “Build Successful”。
-
下载和调试:
- 连接调试器到开发板。
- 选择 “Run” -> “Debug” 进行调试。
- 在调试界面中,设置断点,单步执行,查看变量值等。
3.4.2 使用 Keil MDK-ARM 创建项目
-
启动 Keil MDK-ARM。
-
创建新项目:
- 选择 “Project” -> “New uVision Project”。
- 选择项目保存路径。
- 在 “Device for Target” 对话框中,选择 “LPC1100” 系列单片机,例如 “LPC1114FN28/101”。
- 点击 “OK” 完成项目创建。
-
配置项目:
- 在 “Target” 选项卡中,选择 “LPC1114” 作为目标单片机。
- 在 “Debug” 选项卡中,选择调试器,例如 “J-Link”。
-
编写代码:
- 打开
main.c
文件,编写简单的 LED 闪烁代码。
- 打开
#include "LPC11xx.h"
int main(void) {
// 配置 LED 引脚
LPC_IOCON->P0_18 = (1 << 0); // 设置 P0.18 为 GPIO 功能
LPC_GPIO->DIR0 |= (1 << 18); // 设置 P0.18 为输出
while (1) {
// LED 亮
LPC_GPIO->DATA0 |= (1 << 18);
// 延时 500ms
for (volatile int i = 0; i < 500000; i++);
// LED 灭
LPC_GPIO->DATA0 &= ~(1 << 18);
// 延时 500ms
for (volatile int i = 0; i < 500000; i++);
}
}
-
编译项目:
- 选择 “Project” -> “Rebuild All Target Files” 进行编译。
- 如果编译成功,会在输出窗口中显示 “0 Error(s)” 和 “0 Warning(s)”。
-
下载和调试:
- 连接调试器到开发板。
- 选择 “Flash” -> “Download to Target” 进行下载。
- 选择 “Debug” -> “Start/Stop Debug Session” 进行调试。
- 在调试界面中,设置断点,单步执行,查看变量值等。
3.4.3 使用 IAR Embedded Workbench for ARM 创建项目
-
启动 IAR Embedded Workbench for ARM。
-
创建新项目:
- 选择 “Project” -> “Create New Project”。
- 选择 “C-Source” 项目类型。
- 选择项目保存路径。
- 在 “Device Configuration” 对话框中,选择 “LPC1100” 系列单片机,例如 “LPC1114FN28/101”。
- 点击 “Finish” 完成项目创建。
-
配置项目:
- 在 “Project” -> “Options” 中,选择 “General Options” 选项卡,设置目标单片机。
- 在 “Debugger” 选项卡中,选择调试器,例如 “J-Link”。
-
编写代码:
- 打开
main.c
文件,编写简单的 LED 闪烁代码。
- 打开
#include "lpc11xx.h"
int main(void) {
// 配置 LED 引脚
LPC_IOCON->P0_18 = (1 << 0); // 设置 P0.18 为 GPIO 功能
LPC_GPIO->DIR0 |= (1 << 18); // 设置 P0.18 为输出
while (1) {
// LED 亮
LPC_GPIO->DATA0 |= (1 << 18);
// 延时 500ms
for (volatile int i = 0; i < 500000; i++);
// LED 灭
LPC_GPIO->DATA0 &= ~(1 << 18);
// 延时 500ms
for (volatile int i = 0; i < 500000; i++);
}
}
-
编译项目:
- 选择 “Project” -> “Rebuild All” 进行编译。
- 如果编译成功,会在输出窗口中显示 “No errors” 和 “No warnings”。
-
下载和调试:
- 连接调试器到开发板。
- 选择 “Project” -> “Download and Debug” 进行下载和调试。
- 在调试界面中,设置断点,单步执行,查看变量值等。
3.5 配置固件库
3.5.1 配置 LPCOpen
-
下载 LPCOpen:
- 访问 NXP 官方网站,下载 LPCOpen 固件库。
- 解压下载的固件库到您的项目文件夹。
-
添加固件库到项目:
- 在 LPCXpresso IDE 中,右键点击项目,选择 “Properties”。
- 在 “C/C++ Build” -> “Settings” -> “Tool Settings” -> “ARM GCC C Compiler” -> “Includes” 中,添加 LPCOpen 的路径。
- 在 “C/C++ Build” -> “Settings” -> “Tool Settings” -> “ARM GCC Linker” -> “Libraries” 中,添加需要的库文件。
-
使用固件库:
- 在
main.c
文件中,包含 LPCOpen 的头文件。 - 使用 LPCOpen 提供的函数进行开发。
- 在
#include "lpc11xx.h"
#include "lpc11xx_gpio.h"
int main(void) {
// 初始化 GPIO
LPC_GPIO_PORT->DIR0 |= (1 << 18); // 设置 P0.18 为输出
while (1) {
// LED 亮
LPC_GPIO_PORT->DATA0 |= (1 << 18);
// 延时 500ms
for (volatile int i = 0; i < 500000; i++);
// LED 灭
LPC_GPIO_PORT->DATA0 &= ~(1 << 18);
// 延时 500ms
for (volatile int i = 0; i < 500000; i++);
}
}
3.5.2 配置 CMSIS
-
下载 CMSIS:
- 访问 ARM 官方网站,下载 CMSIS 固件库。
- 解压下载的固件库到您的项目文件夹。
-
添加 CMSIS 到项目:
- 在 Keil MDK-ARM 中,右键点击项目,选择 “Add Files to Group ‘Source Group 1’”。
- 添加 CMSIS 的头文件和源文件路径。
- 在 “Project” -> “Options” -> “C/C++” -> “Include Paths” 中,添加 CMSIS 的路径。
-
使用 CMSIS:
- 在
main.c
文件中,包含 CMSIS 的头文件。 - 使用 CMSIS 提供的函数进行开发。
- 在
#include "LPC11xx.h"
#include "core_cm0.h"
int main(void) {
// 配置 LED 引脚
LPC_IOCON->P0_18 = (1 << 0); // 设置 P0.18 为 GPIO 功能
LPC_GPIO->DIR0 |= (1 << 18); // 设置 P0.18 为输出
while (1) {
// LED 亮
LPC_GPIO->DATA0 |= (1 << 18);
// 延时 500ms
for (volatile int i = 0; i < 500000; i++);
// LED 灭
LPC_GPIO->DATA0 &= ~(1 << 18);
// 延时 500ms
for (volatile int i = 0; i < 500000; i++);
}
}
3.6 配置硬件连接
3.6.1 连接开发板和调试器
在配置开发环境的过程中,正确连接开发板和调试器是至关重要的一步。以下是详细的连接步骤:
-
硬件连接:
- SWD 接口:将调试器的 SWD 接口连接到开发板的 SWD 接口。SWD 接口通常有 4 个引脚:SWDIO、SWCLK、GND 和 VCC。
- USB 线:确保 USB 线连接到调试器和电脑的 USB 端口。这将用于供电和通信。
- 外部电源(如果需要):如果开发板需要外部电源供电,连接外部电源适配器。常见的电源适配器电压为 5V 或 3.3V。
-
检查连接:
- 在 LPCXpresso IDE 中,选择 “Run” -> “Debug Configurations”。
- 在弹出的对话框中,选择 “LPC-Link2” 或您使用的调试器。
- 确认调试器的连接设置,例如 SWD 接口和波特率。
- 点击 “Apply” 和 “Debug” 按钮,IDE 将尝试连接到单片机。
3.6.2 连接 USB 转串口适配器
在某些项目中,您可能需要通过串口与单片机进行通信。以下是连接 USB 转串口适配器的步骤:
-
硬件连接:
- 将 USB 转串口适配器的 TX、RX、GND 和 VCC 引脚连接到开发板的相应引脚。
- 确保 USB 线连接到适配器和电脑的 USB 端口。
-
安装驱动:
- 访问适配器厂商的官方网站,下载并安装相应的驱动程序。
- 在 Windows 中,可以通过设备管理器检查驱动是否安装成功。
-
配置串口通信:
- 在 LPCXpresso IDE 中,选择 “Run” -> “Debug Configurations”。
- 在弹出的对话框中,选择 “GDB Serial Debugger”。
- 配置串口参数,例如波特率、数据位、停止位和校验位。
- 确认调试器的连接设置,例如串口端口号。
- 点击 “Apply” 和 “Debug” 按钮,IDE 将尝试连接到单片机。
3.6.3 连接外部电源
如果您使用的是最小系统板或自定义电路,可能需要外部电源供电。以下是连接外部电源的步骤:
-
选择电源适配器:
- 选择适合您单片机工作电压的电源适配器,常见的电压为 5V 或 3.3V。
-
硬件连接:
- 将电源适配器的正极(VCC)连接到开发板的 VCC 引脚。
- 将电源适配器的负极(GND)连接到开发板的 GND 引脚。
-
检查电源连接:
- 确认电源适配器的输出电压和电流符合开发板的要求。
- 使用万用表检查电源连接是否正确,确保没有短路。
3.7 常见问题及解决方法
在搭建开发环境的过程中,可能会遇到一些常见的问题。以下是一些常见问题及其解决方法:
3.7.1 无法识别调试器
问题:调试器连接后,开发环境无法识别调试器。
解决方法:
- 检查驱动:确保调试器的驱动程序已经正确安装。可以访问调试器厂商的官方网站下载最新驱动。
- 检查连接:确保调试器的 SWD 接口和 USB 线连接正确,没有松动或损坏。
- 重启电脑:有时候重启电脑可以解决驱动识别问题。
3.7.2 编译错误
问题:编译项目时出现错误。
解决方法:
- 检查依赖:确保所有需要的库文件和头文件已经正确添加到项目中。
- 检查配置:确保 IDE 中的项目配置(如目标单片机、编译器设置、调试器设置等)正确无误。
- 查看错误信息:仔细阅读编译器输出的错误信息,根据错误提示进行修改。
3.7.3 调试连接失败
问题:调试时无法连接到单片机。
解决方法:
- 检查电源:确保开发板已经正确供电。
- 检查 SWD 接口:确保调试器的 SWD 接口与开发板的 SWD 接口连接正确。
- 复位单片机:尝试复位单片机,有时复位可以解决连接问题。
- 检查固件库:确保固件库版本与单片机兼容。
3.7.4 串口通信问题
问题:通过串口与单片机通信时出现问题。
解决方法:
- 检查波特率:确保串口通信的波特率设置正确。
- 检查引脚连接:确保 USB 转串口适配器的 TX、RX、GND 和 VCC 引脚与开发板的相应引脚连接正确。
- 检查驱动:确保 USB 转串口适配器的驱动程序已经正确安装。
3.8 总结
通过以上步骤,您应该能够成功搭建一个适合 LPC1100 系列单片机的开发环境。开发环境的配置包括选择和配置硬件工具(开发板、调试器、USB 转串口适配器、电源)和软件工具(IDE、编译工具、调试工具、固件库)。每个步骤都非常重要,确保每一步都正确无误,可以帮助您顺利进行单片机的编程和调试。
希望这些详细的步骤和说明能够帮助您快速上手 LPC1100 系列单片机的开发。如果您在配置过程中遇到任何问题,可以参考厂商提供的文档或寻求社区的帮助。祝您开发愉快!