PAGE1
PAGE1
LPC15xx系列项目实战
1.项目概述
在本节中,我们将通过一个具体的项目实战,详细介绍如何在LPC15xx系列单片机上实现一个简单而实用的嵌入式系统。项目的目标是开发一个基于LPC15xx单片机的温度监控系统,该系统能够采集温度数据并将其通过串口发送到上位机进行显示。通过这个项目,您将学习到以下内容:
如何配置LPC15xx的串口通信
如何使用ADC模块采集温度传感器的数据
如何编写定时器中断处理程序
如何使用GPIO模块控制LED指示灯
如何使用LPCOpen库进行开发
2.硬件准备
在开始项目实战之前,您需要准备以下硬件:
LPC15xx开发板
温度传感器(例如:LM75)
上位机(例如:WindowsPC)
串口调试助手软件
USB转TTL串口模块(如果开发板没有集成串口转USB接口)
3.开发环境搭建
为了方便开发,我们使用LPCXpressoIDE。请按照以下步骤搭建开发环境:
安装LPCXpressoIDE:
访问NXP官方网站下载LPCXpressoIDE。
安装LPCXpressoIDE及其相关的驱动程序。
安装LPCOpen库:
下载LPCOpen库并解压。
在LPCXpressoIDE中导入LPCOpen库项目。
创建项目:
打开LPCXpressoIDE,选择“File”“New”“LPCXpressoProject”。
选择LPC15xx芯片型号,例如LPC1517。
选择项目类型为“EmptyProject”。
配置项目的名称和存储路径,点击“Finish”完成项目创建。
4.串口通信配置
LPC15xx系列单片机支持多种串口通信方式,包括USART、UART和SPI。在本项目中,我们将使用USART进行串口通信。
4.1初始化USART
首先,我们需要初始化USART模块。以下代码示例展示了如何初始化USART1,配置其波特率为115200,数据位为8位,停止位为1位,无校验位。
#includechip.h
voidUSART_Init(void){
//配置时钟
Chip_SYSCTL_PowerUp(SYSCTL_PDRUNCFG_PD_USART1);
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_USART1);
//初始化USART1
Chip_USART_Init(LPC_USART1);
//配置波特率
Chip_USART_SetBaudRate(LPC_USART1,115200,(72*1000000));
//配置数据位、停止位和校验位
Chip_USART_ConfigData(LPC_USART1,(USART_CFG_DATALENGTH_8|USART_CFG_PARITY_NONE|USART_CFG_STOPLEN_1));
//启用USART1
Chip_USART_Enable(LPC_USART1);
}
4.2发送数据
接下来,我们编写一个函数用于通过USART1发送数据。
voidUSART_SendString(constchar*str){
while(*str){
//发送一个字符
Chip_USART_SendByte(LPC_USART1,*str++);
}
}
5.ADC模块配置
LPC15xx系列单片机内置了ADC模块,可以用于采集温度传感器的数据。在本项目中,我们将使用ADC0模块。
5.1初始化ADC
以下代码示例展示了如何初始化ADC0模块,并配置其为单次转换模式。
#includechip.h
voidADC_Init(void){
//配置时钟
Chip_SYSCTL_PowerUp(SYSCTL_PDRUNCFG_PD_ADC0);
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_ADC0);
//初始化ADC0
Chip_ADC_Init(LPC_ADC0,CLOCK_RATE);
//配置ADC为单次转换模式
Chip_ADC_SetMode(LPC_ADC0,ADC_MODE_SINGLE);
}
5.2采集数据
接下来,我们编写一个函数用于采集ADC0模块的数据。
uint32_tADC_Read(void){