基本信息
文件名称:NXP 系列:LPC1768 (适用于复杂娱乐设备)_(8).LPC1768UART接口.docx
文件大小:23.39 KB
总页数:14 页
更新时间:2025-06-15
总字数:约8.15千字
文档摘要

PAGE1

PAGE1

LPC1768UART接口

引言

UART(UniversalAsynchronousReceiver-Transmitter)是一种常用的串行通信接口,广泛应用于嵌入式系统中。LPC1768单片机集成了多个UART接口,可以方便地实现与其他设备的串行通信。本节将详细介绍LPC1768的UART接口的原理和使用方法,并通过具体的代码示例来展示如何配置和使用UART接口。

UART接口的基本原理

UART是一种异步串行通信方式,不使用时钟信号进行同步,而是通过起始位和停止位来标识数据帧的开始和结束。UART通信的基本参数包括波特率、数据位、停止位和校验位。LPC1768的UART接口支持多种配置,可以灵活地适应不同的通信需求。

数据帧格式

UART的数据帧通常包括以下几个部分:

起始位:通常为低电平,用于标识数据帧的开始。

数据位:5到8位的数据,具体位数由配置决定。

校验位:可选,用于校验数据的正确性,可以是奇校验、偶校验或无校验。

停止位:通常为高电平,用于标识数据帧的结束,可以是1位、1.5位或2位。

波特率

波特率是UART通信的重要参数,表示每秒传输的位数。LPC1768的UART接口可以通过配置寄存器来设置波特率。常用波特率包括9600、115200等。

配置寄存器

LPC1768的UART接口主要通过以下寄存器进行配置:

LineControlRegister(LCR):配置数据位、停止位、校验位等。

DivisorLatchRegisters(DLLandDLM):设置波特率。

FIFOControlRegister(FCR):配置FIFO缓冲区。

LineStatusRegister(LSR):读取UART状态。

ModemControlRegister(MCR):配置调制解调器控制信号。

ModemStatusRegister(MSR):读取调制解调器状态。

LPC1768UART接口的初始化

在使用UART接口之前,需要进行初始化配置。以下是一个详细的初始化过程:

1.使能UART时钟

在LPC1768中,首先需要使能UART的时钟。这可以通过配置PCLKSEL0或PCLKSEL1寄存器来实现。

//使能UART0时钟

LPC_SC-PCLKSEL0=~(0x36);

LPC_SC-PCLKSEL0|=(0x26);

//使能UART1时钟

LPC_SC-PCLKSEL1=~(0x30);

LPC_SC-PCLKSEL1|=(0x20);

2.配置引脚功能

LPC1768的引脚可以通过PINSEL寄存器进行配置,以实现UART功能。

//配置UART0的TX和RX引脚

LPC_PINCON-PINSEL0=~(0xF4);//清除旧配置

LPC_PINCON-PINSEL0|=(0x54);//配置P0.2为UART0_TXD

LPC_PINCON-PINSEL0=~(0xF8);//清除旧配置

LPC_PINCON-PINSEL0|=(0x58);//配置P0.3为UART0_RXD

//配置UART1的TX和RX引脚

LPC_PINCON-PINSEL4=~(0xF0);//清除旧配置

LPC_PINCON-PINSEL4|=(0x50);//配置P2.0为UART1_TXD

LPC_PINCON-PINSEL4=~(0xF4);//清除旧配置

LPC_PINCON-PINSEL4|=(0x54);//配置P2.1为UART1_RXD

3.配置波特率

通过设置DLL和DLM寄存器来配置波特率。波特率的计算公式为:

波特率

voidUART_ConfigBaudRate(uint32_tbaudRate){

uint32_tpclk=SystemCoreClock;//假设PCLK等于系统时钟

uint32_tdivisor=pclk/(16*baudRate);

LPC_UART0-DLL=(uint8_t)(divisor0xFF);

LPC_UART0-DLM=(uint8_t)((divisor8)0xFF);

}

4.配置数据位、停止位和校验位

通过LCR寄存器来配置数据位、停止位和校验位。

voidUART_ConfigLineControl(uint8_tdataBits,uint8_tstopBits,uint