基本信息
文件名称:TI 系列:TM4C123 系列_(9).UART通信接口设计.docx
文件大小:25.52 KB
总页数:20 页
更新时间:2025-06-21
总字数:约1.21万字
文档摘要

PAGE1

PAGE1

UART通信接口设计

1.UART通信基础

1.1UART通信原理

UART(UniversalAsynchronousReceiver/Transmitter)是一种通用异步收发传输器,用于实现单片机之间的异步串行通信。UART通信的主要特点是不需要时钟信号同步,通过起始位和停止位来标识数据帧的开始和结束。数据帧通常包括1个起始位、5到8个数据位、1个可选的奇偶校验位和1到2个停止位。

1.2UART通信协议

UART通信协议定义了数据传输的格式和规则。一个典型的数据帧包括以下几个部分:

起始位:低电平,持续1个比特时间,用于标识数据帧的开始。

数据位:传输的数据,通常为5到8位,低位先传。

奇偶校验位:可选,用于检测数据传输的错误。

停止位:高电平,持续1到2个比特时间,用于标识数据帧的结束。

1.3UART通信参数

在配置UART通信时,需要设置以下参数:

波特率:数据传输的速率,单位为比特/秒(bps)。

数据位:每个数据帧中的数据位数,通常为5到8位。

停止位:每个数据帧中的停止位数,通常为1或2位。

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

2.TM4C123UART硬件结构

2.1UART模块概述

TM4C123系列单片机集成了多个UART模块,每个模块都可以独立配置和使用。这些模块支持全双工通信,即同时发送和接收数据。每个UART模块都有独立的引脚,可以通过GPIO进行配置。

2.2UART模块寄存器

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

DR(DataRegister):数据寄存器,用于发送和接收数据。

FR(FlagRegister):标志寄存器,用于指示UART模块的状态。

LCRH(LineControlRegisterHigh):线路控制寄存器,用于配置数据位、停止位和奇偶校验。

IBRD(IntegerBaud-RateDivisor):整数波特率除数寄存器。

FBRD(FractionalBaud-RateDivisor):分数波特率除数寄存器。

CTL(ControlRegister):控制寄存器,用于启用或禁用UART模块。

IFLS(InterruptFIFOLevelSelect):中断FIFO电平选择寄存器。

IMSC(InterruptMaskSet/Clear):中断掩码设置/清除寄存器。

RIS(RawInterruptStatus):原始中断状态寄存器。

MIS(MaskedInterruptStatus):屏蔽中断状态寄存器。

ICR(InterruptClearRegister):中断清除寄存器。

2.3UART模块引脚配置

UART模块的引脚配置通常包括以下步骤:

选择合适的UART模块和引脚。

配置引脚为UART功能。

配置UART模块的波特率、数据位、停止位和奇偶校验。

//配置UART0模块的引脚

voidUART0PinConfig(void){

//使能GPIOA模块的时钟

SYSCTL_RCGCGPIO_R|=SYSCTL_RCGCGPIO_R0;

while((SYSCTL_PRGPIO_RSYSCTL_PRGPIO_R0)==0){}

//配置PA0和PA1为UART0功能

GPIO_PORTA_AFSEL_R|=(10)|(11);//使能引脚的复用功能

GPIO_PORTA_PCTL_R|=(GPIO_PCTL_PA0_U0RX|GPIO_PCTL_PA1_U0TX);//配置引脚为UART0RX和TX

GPIO_PORTA_DEN_R|=(10)|(11);//使能引脚的数字功能

GPIO_PORTA_DIR_R|=(11);//设置PA1为输出,PA0为输入

}

3.TM4C123UART软件配置

3.1UART模块初始化

UART模块的初始化主要包括设置波特率、数据位、停止位和奇偶校验等参数。以下是一个初始化UART0模块的示例:

#includestdint.h

#includestdbool.h

#includeinc/tm4c123gh6pm.h

voidUART0Init(uint32_tbaudRate){

//使能UART0模块的时钟

SYSCTL_RCGCUART_R|=SYSCTL_RCGCUART_R0;

while((SYSCTL_PRUART_R