基本信息
文件名称:Texas Instruments 系列:Tiva C 系列 (基于 ARM Cortex-M4)_(10).TivaC系列UART通信.docx
文件大小:25.55 KB
总页数:20 页
更新时间:2025-06-24
总字数:约1.3万字
文档摘要

PAGE1

PAGE1

TivaC系列UART通信

1.UART通信基础

1.1UART通信简介

UART(UniversalAsynchronousReceiver-Transmitter)是一种串行通信接口,用于在设备之间传输数据。UART通信的特点是异步传输,即不需要同步时钟信号来协调数据的发送和接收。数据的传输是通过一个起始位、一个或多个数据位、一个可选的奇偶校验位和一个停止位来完成的。这些位的组合称为一个帧。

1.2UART通信帧结构

一个典型的UART通信帧结构如下:

起始位:通常是一个低电平(0),表示数据传输的开始。

数据位:通常为5到8位,具体取决于配置。

奇偶校验位:可选,用于检测传输错误。可以是偶校验、奇校验或无校验。

停止位:通常是一个高电平(1),表示数据传输的结束。可以是1位、1.5位或2位。

1.3UART通信波特率

波特率是UART通信中数据传输速率的单位,表示每秒传输的位数。常见的波特率有9600、19200、38400、57600和115200等。波特率需要在发送和接收设备之间进行匹配,否则会导致数据传输错误。

2.TivaC系列UART配置

2.1UART模块概述

TivaC系列单片机集成了多个UART模块,每个模块都有独立的寄存器组,可以通过编程进行配置。TivaC系列的UART模块支持全双工通信,即可以同时进行数据的发送和接收。

2.2配置UART模块

配置UART模块通常需要以下步骤:

使能UART模块:通过系统控制模块(SystemControl)使能UART模块的时钟。

配置GPIO引脚:将GPIO引脚配置为UART功能。

配置UART参数:设置波特率、数据位、奇偶校验位和停止位。

使能UART中断:如果需要中断处理,使能相应的中断。

初始化UART模块:完成上述配置后,初始化UART模块。

2.2.1使能UART模块

使能UART模块的时钟可以通过SystemControl模块的寄存器进行配置。例如,使能UART0模块的时钟:

//使能UART0模块的时钟

SYSCTL_RCGCUART_R|=SYSCTL_RCGCUART_R0;

while((SYSCTL_RCGCUART_RSYSCTL_RCGCUART_R0)==0){

//等待时钟使能

}

2.2.2配置GPIO引脚

将GPIO引脚配置为UART功能需要通过GPIO模块的寄存器进行设置。例如,配置PA0和PA1引脚为UART0的TX和RX引脚:

//使能端口A的时钟

SYSCTL_RCGCGPIO_R|=SYSCTL_RCGCGPIO_R0;

while((SYSCTL_RCGCGPIO_RSYSCTL_RCGCGPIO_R0)==0){

//等待时钟使能

}

//配置PA0和PA1为UART0的TX和RX引脚

GPIO_PORTA_AFSEL_R|=(10)|(11);//选择GPIO复用功能

GPIO_PORTA_PCTL_R=(GPIO_PORTA_PCTL_R~(GPIO_PCTL_PA0_M|GPIO_PCTL_PA1_M))|

(GPIO_PCTL_PA0_U0TX|GPIO_PCTL_PA1_U0RX);//配置复用功能

GPIO_PORTA_DEN_R|=(10)|(11);//启用数字功能

GPIO_PORTA_DIR_R|=(10);//设置PA0为输出(TX)

2.2.3配置UART参数

配置UART参数包括设置波特率、数据位、奇偶校验位和停止位。例如,配置UART0模块的波特率为9600,8位数据位,无奇偶校验位,1位停止位:

//配置UART0模块

UART0_CTL_R=~UART_CTL_UARTEN;//禁用UART0模块

UART0_IBRD_R=500;//整数波特率除数

UART0_FBRD_R=44;//分数波特率除数

UART0_LCRH_R=UART_LCRH_WLEN_8|UART_LCRH_FEN;//8位数据,使能FIFO

UART0_CTL_R|=UART_CTL_UARTEN|UART_CTL_TXE|UART_CTL_RXE;//使能UART0模块,启用TX和RX

2.2.4使能UART中断

如果需要中断处理,可以通过配置UART模块的中断寄存器来使能相应的中断。例如,使能UART0模块的接收中断:

//使能UART0模块的接收中断

UA