NXP 系列:LPC810 系列 (低功耗)_(9).UART通信接口.docxVIP

NXP 系列:LPC810 系列 (低功耗)_(9).UART通信接口.docx

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE1

PAGE1

UART通信接口

1.UART通信基础

UART(UniversalAsynchronousReceiver/Transmitter)是一种通用的串行通信接口,用于在设备之间传输数据。UART通信接口的特点是异步通信,即发送方和接收方不需要共享同一个时钟信号。每个数据位的传输时间由波特率确定,波特率是每秒传输的位数。UART通信通常使用两个信号线:TX(发送)和RX(接收)。

1.1UART通信的基本原理

UART通信的基本原理可以概括为以下几个步骤:

数据帧格式:UART通信的数据帧通常包括起始位、数据位、奇偶校验位和停止位。起始位为低电平,表示数据传输的开始;数据位为实际传输的数据,通常是8位;奇偶校验位用于校验数据的完整性;停止位为高电平,表示数据传输的结束。

波特率:波特率是指每秒传输的位数。发送方和接收方必须设置相同的波特率以确保数据的正确传输。

数据发送:发送方将要发送的数据转换为串行位流,并在起始位之后依次发送数据位和奇偶校验位,最后发送停止位。

数据接收:接收方检测到起始位后,开始逐位接收数据位和奇偶校验位,最后接收停止位。接收方根据接收到的数据位和奇偶校验位进行校验,确保数据的完整性。

1.2UART通信的数据帧格式

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

起始位:1位低电平,表示数据帧的开始。

数据位:通常为5到8位,表示实际传输的数据。

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

停止位:1到2位高电平,表示数据帧的结束。

例如,一个常见的UART数据帧格式为:1位起始位,8位数据位,1位停止位(无奇偶校验)。

2.LPC810上的UART模块

LPC810系列单片机内置了UART模块,支持多种通信配置,包括不同的波特率、数据位长度、奇偶校验和停止位数。LPC810的UART模块通过寄存器配置实现不同的功能。

2.1UART寄存器配置

LPC810的UART模块主要包括以下几个寄存器:

线状态寄存器(LSR):用于检测UART的状态,如数据是否准备好、是否发生错误等。

波特率寄存器(DLL和DLM):用于设置UART的波特率。

控制寄存器(LCR):用于配置数据位长度、奇偶校验和停止位数。

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

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

中断状态寄存器(IIR):用于检测中断状态。

波特率除数寄存器(DIV:用于设置波特率的除数。

2.2初始化UART

在LPC810上初始化UART模块的步骤如下:

配置波特率:通过设置波特率寄存器(DLL和DLM)来确定波特率。

配置数据帧格式:通过设置控制寄存器(LCR)来确定数据位长度、奇偶校验和停止位数。

使能UART:通过设置控制寄存器(LCR)来使能UART模块。

配置中断:通过设置中断使能寄存器(IER)来使能或禁用UART中断。

2.2.1配置波特率

波特率的配置需要计算波特率除数,公式为:

除数

例如,如果系统时钟频率为12MHz,波特率为9600bps,计算除数如下:

除数

由于除数必须是整数,通常取最接近的整数值。在LPC810中,波特率除数可以通过DLL和DLM寄存器设置。

//设置波特率

voidUART_SetBaudRate(uint32_tbaudRate,uint32_tsystemClock){

uint32_tdiv=(systemClock/16)/baudRate;

LPC_USART-DLL=(uint8_t)(div0xFF);//设置低8位

LPC_USART-DLM=(uint8_t)((div8)0xFF);//设置高8位

}

2.2.2配置数据帧格式

通过设置控制寄存器(LCR)来配置数据帧格式。例如,配置8位数据位、无奇偶校验、1位停止位:

//配置数据帧格式

voidUART_ConfigDataFormat(uint8_tdataBits,uint8_tparity,uint8_tstopBits){

LPC_USART-LCR=(dataBits-5)0|//数据位长度

(parity3)|//奇偶校验

(stopBits-1)2;//停止位数

}

2.3发送和接收数据

2.3.1发送数据

发送数据时,需要将数据写入发送保持寄存器(THR)。LPC810的UART模块会在数据发送完毕后自

文档评论(0)

找工业软件教程找老陈 + 关注
实名认证
服务提供商

寻找教程;翻译教程;题库提供;教程发布;计算机技术答疑;行业分析报告提供;

1亿VIP精品文档

相关文档