PAGE1
PAGE1
LPC2000系列BOOT模式
引言
LPC2000系列单片机提供了多种启动模式,这些模式允许用户根据不同的应用场景选择合适的启动方式。启动模式的选择不仅影响系统的初始化过程,还决定了程序的加载和执行方式。本节将详细介绍LPC2000系列单片机的启动模式,包括主闪存启动模式、ISP模式、IAP模式以及通过外部存储器的启动模式。我们将探讨每种模式的原理、配置方法以及应用场景,并通过具体的代码示例来说明如何实现这些模式。
主闪存启动模式
原理
主闪存启动模式是最常见的启动方式,单片机上电后从内部闪存中的特定地址开始执行程序。这种模式适用于大多数应用,因为程序可以直接存储在内部闪存中,启动速度快且可靠性高。
配置方法
在主闪存启动模式下,单片机的启动地址通常设置为0启动地址可以通过修改闪存配置寄存器(FlashConfigurationRegister,FCR)来设置。FCR位于地址0包含启动地址和一些其他的配置信息。
应用场景
主闪存启动模式适用于大多数嵌入式系统,例如传感器数据采集、电机控制、智能家居等。在这种模式下,用户可以将程序直接烧录到内部闪存中,单片机上电后即可立即运行。
代码示例
以下是一个简单的示例,展示如何在主闪存启动模式下编写和烧录一个LED闪烁程序。
#includeLPC21xx.h//包含LPC21xx系列单片机的头文件
//定义LED引脚
#defineLED_PIN(116)//P0.16
//延时函数
voiddelay(intcount){
for(inti=0;icount;i++);
}
intmain(){
//配置P0.16为输出模式
LPC_PINCON-PINSEL0=~(0x3(16*2));//清除P0.16的其他功能
LPC_PINCON-PINSEL0|=(0x0(16*2));//设置P0.16为GPIO
LPC_GPIO0-IODIR|=LED_PIN;//设置P0.16为输出
while(1){
//点亮LED
LPC_GPIO0-IOSET=LED_PIN;
delay(1000000);//延时1秒
//熄灭LED
LPC_GPIO0-IOCLR=LED_PIN;
delay(1000000);//延时1秒
}
}
说明
包含头文件:#includeLPC21xx.h包含了LPC21xx系列单片机的寄存器定义和功能函数。
定义LED引脚:#defineLED_PIN(116)定义了LED连接的引脚为P0.16。
延时函数:voiddelay(intcount)用于产生延时,通过一个简单的循环实现。
主函数:
配置P0.16为GPIO输出模式。
使用无限循环控制LED的闪烁,每次点亮和熄灭LED之间延时1秒。
ISP模式
原理
ISP(In-SystemProgramming)模式允许用户通过串口或USB等接口在系统中直接对单片机的内部闪存进行编程。这种模式非常方便,适用于现场升级和调试。
配置方法
要进入ISP模式,通常需要在单片机上电时按住特定的键或设置特定的引脚。对于LPC2000系列单片机,可以通过设置引脚P0.0为低电平来进入ISP模式。具体的配置方法可以通过修改启动配置寄存器(BootConfigurationRegister,BCR)来实现。
应用场景
ISP模式适用于需要频繁更新程序的场景,例如产品在现场调试和软件升级时。通过ISP模式,用户可以方便地通过串口或USB接口进行在线编程,而无需物理拆卸单片机。
代码示例
以下是一个简单的示例,展示如何通过串口进入ISP模式并进行编程。
#includeLPC21xx.h//包含LPC21xx系列单片机的头文件
//定义ISP模式进入条件
#defineISP_PIN(10)//P0.0
//延时函数
voiddelay(intcount){
for(inti=0;icount;i++);
}
intmain(){
//配置P0.0为输入模式
LPC_PINCON-PINSEL0=~(0x3(0*2));/