基本信息
文件名称:NXP 系列:LPC1100 系列_(16).LPC1100系列的UART通信.docx
文件大小:27.05 KB
总页数:21 页
更新时间:2025-06-18
总字数:约1.13万字
文档摘要

PAGE1

PAGE1

LPC1100系列的UART通信

1.UART通信概述

UART(UniversalAsynchronousReceiver/Transmitter)是一种通用的串行通信接口,用于实现设备之间的异步数据传输。LPC1100系列单片机内置了多个UART模块,支持全双工通信,可以方便地与其他设备进行数据交换。UART通信的特点包括:

异步通信:发送和接收设备之间不共享时钟信号,通过起始位和停止位来同步数据。

低速传输:适用于低速通信场景,通常传输速率为1200波特率到115200波特率。

简单接口:仅需要两根信号线(TX和RX)即可实现数据传输。

2.LPC1100系列UART模块介绍

LPC1100系列单片机通常内置2个UART模块,即UART0和UART1。每个UART模块都包含以下主要寄存器:

数据寄存器(RBR/THR):用于接收和发送数据。

状态寄存器(LSR):用于指示UART的状态,如数据准备好、发送完成等。

控制寄存器(LCR):用于配置数据格式,如数据位、停止位和校验位。

波特率寄存器(DLL/DLM):用于设置通信的波特率。

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

线路控制寄存器(LCR):用于配置数据格式,如数据位、停止位和校验位。

调制解调器控制寄存器(MCR):用于控制调制解调器信号。

调制解调器状态寄存器(MSR):用于读取调制解调器信号状态。

FIFO控制寄存器(FCR):用于配置FIFO功能。

线路状态寄存器(LSR):用于读取线路状态。

调制解调器状态寄存器(MSR):用于读取调制解调器状态。

中断标识寄存器(IIR):用于识别中断源。

中断使能寄存器(IER):用于启用或禁用中断。

3.UART配置

在LPC1100系列单片机中,UART的配置通常包括以下几个步骤:

3.1设置波特率

波特率是UART通信中非常重要的参数,它决定了每秒传输的位数。LPC1100系列单片机通过设置DLL(DivisorLatchLow)和DLM(DivisorLatchHigh)寄存器来配置波特率。波特率的计算公式为:

波特率

其中,PCLK是系统时钟频率,DLM和DLL是波特率寄存器的值。

3.2配置数据格式

数据格式包括数据位、停止位和校验位。通过设置LCR(LineControlRegister)寄存器来配置这些参数。LCR寄存器的格式如下:

7|6|5|4|3|2|1|0|

|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|

DLAB|-|-|-|-|-|PEN|WLS|

WLS(WordLengthSelect):设置数据位长度,00=5位,01=6位,10=7位,11=8位。

PEN(ParityEnable):启用或禁用校验位,1=启用,0=禁用。

3.3配置FIFO

LPC1100系列单片机的UART模块支持FIFO(FirstInFirstOut)功能,可以增加数据传输的效率。通过设置FCR(FIFOControlRegister)寄存器来启用或禁用FIFO功能。FCR寄存器的格式如下:

7|6|5|4|3|2|1|0|

|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|

-|-|-|-|-|-|-|FIFOEnable|

FIFOEnable:0=禁用FIFO,1=启用FIFO。

3.4使能UART

通过设置IER(InterruptEnableRegister)寄存器来启用UART中断。IER寄存器的格式如下:

7|6|5|4|3|2|1|0|

|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|

-|-|-|-|-|-|-|ERBFI(EnableReceiveBufferFullInterrupt)|

ERBFI:0=禁用接收缓冲区满中断,1=启用接收缓冲区满中断。

4.UART编程实例

下面通过一个具体的例子来展示如何在LPC1100系列单片机上配置和使用UART模块。假设我们要配置UART0以115200波特率、8位数据、1位停止位和无校验位的方式进行通信。

4.1初始化UART

#includeLPC11xx.h

voidUART0_Init(uint32_tbaud_rate){

//使能UART0的时钟

LPC_SYSCON-SYSAHBCLKCTRL|=(112);//使能UART