文档详情

NXP 系列:LPC1114 (适用于简单音频设备)_(8).LPC1114UART编程.docx

发布:2025-06-14约6.72千字共13页下载文档
文本预览下载声明

PAGE1

PAGE1

LPC1114UART编程

1.引言

UART(UniversalAsynchronousReceiver-Transmitter)是一种非常常见的串行通信接口,用于在单片机和其他设备之间传输数据。在NXP系列的LPC1114单片机中,UART接口被广泛应用于数据采集、调试信息输出、与其他设备通信等场景。本节将详细介绍LPC1114的UART编程方法,包括初始化、数据发送和接收、中断配置等内容。

2.UART基础

UART通信的基本原理是通过串行数据线在两个设备之间传输数据。UART通信不需要时钟线,因此是一种异步通信方式。LPC1114中的UART模块支持多种波特率、数据格式和中断配置,使得开发者可以根据具体需求进行灵活配置。

2.1UART寄存器

LPC1114的UART模块包括多个寄存器,用于控制和配置UART通信。以下是一些常用寄存器的介绍:

LSR(LineStatusRegister):线路状态寄存器,用于指示接收缓冲区的状态、发送缓冲区的状态等。

THR(TransmitHoldingRegister):发送保持寄存器,用于写入待发送的数据。

RBR(ReceiveBufferRegister):接收缓冲寄存器,用于读取接收到的数据。

IER(InterruptEnableRegister):中断使能寄存器,用于使能或禁止UART中断。

FDR(FractionalDividerRegister):分数除法寄存器,用于设置波特率的分数部分。

LCR(LineControlRegister):线路控制寄存器,用于设置数据位、停止位、奇偶校验位等。

DLL(DivisorLatchLowByte):除法器低位寄存器,用于设置波特率的低8位。

DLM(DivisorLatchHighByte):除法器高位寄存器,用于设置波特率的高8位。

IER(InterruptEnableRegister):中断使能寄存器,用于使能或禁止UART中断。

3.UART初始化

在使用UART进行通信之前,需要对UART模块进行初始化配置。初始化步骤包括设置波特率、数据格式、使能UART以及配置中断等。

3.1设置波特率

波特率决定了数据传输的速度。LPC1114的UART模块支持多种波特率设置,可以通过除法器寄存器DLL和DLM来实现。波特率的计算公式如下:

波特率

其中,PCLK是外设时钟频率。

3.1.1代码示例

以下是一个设置UART1波特率为9600的代码示例:

#includeLPC11xx.h

voidUART1_Init(void){

//使能UART1的时钟

LPC_SYSCON-SYSAHBCLKCTRL|=(112);//使能UART1时钟

//设置波特率

uint32_tPCLK=LPC_SYSCON-SYSPLLCLKUEN;//获取PCLK频率

uint32_tDLAB=0x80;//使能除法器寄存器访问

uint32_tDivisor=PCLK/(16*9600);//计算除法器值

LPC_UART1-LCR=(DLAB|0x03);//使能除法器寄存器访问,设置8位数据位

LPC_UART1-DLL=(Divisor0xFF);//设置除法器低位

LPC_UART1-DLM=(Divisor8);//设置除法器高位

LPC_UART1-LCR=0x03;//8位数据位,1位停止位,无奇偶校验

}

3.2设置数据格式

数据格式包括数据位、停止位和奇偶校验位的设置。LPC1114的UART模块支持8位、9位数据位,1位或2位停止位,以及奇偶校验位的配置。

3.2.1代码示例

以下是一个设置UART1为8位数据位、1位停止位、无奇偶校验的代码示例:

voidUART1_SetDataFormat(void){

LPC_UART1-LCR=0x03;//8位数据位,1位停止位,无奇偶校验

}

3.3使能UART

在配置完波特率和数据格式后,需要使能UART模块。使能UART可以通过设置LCR寄存器的DLAB位来实现。

3.3.1代码示例

以下是一个使能UART1的代码示例:

voidUART1_Enable(void){

LPC_UART1-LCR=~0x80;//清除DLAB位,使能UART

}

3.4配置中断

显示全部
相似文档