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