基本信息
文件名称:Microchip 系列:PIC24 系列_(12).USART模块的配置与使用.docx
文件大小:34.03 KB
总页数:45 页
更新时间:2025-06-13
总字数:约2.55万字
文档摘要

PAGE1

PAGE1

USART模块的配置与使用

1.USART模块概述

UniversalSynchronousAsynchronousReceiverTransmitter(USART)模块是PIC24单片机中一个非常重要的外设,用于实现串行通信。USART模块支持多种通信模式,包括异步模式(UART)、同步模式(SPI)和I2C模式。在本文中,我们将重点介绍USART模块在异步模式下的配置与使用,因为这是最常用的通信方式。

1.1异步模式(UART)

在异步模式下,USART模块通过两个引脚进行数据的发送和接收:TX(传输)和RX(接收)。异步通信不需要时钟信号同步,而是通过起始位和停止位来标记数据帧的开始和结束。每个数据帧通常包括1个起始位、5到9个数据位、0到2个停止位以及可选的奇偶校验位。

1.2同步模式(SPI)

在同步模式下,USART模块通过时钟信号(CLK)来同步数据传输。常见的引脚包括CLK、MISO(主入从出)、MOSI(主出从入)和NSS(片选信号)。同步模式适用于高速数据传输,适用于多个设备之间的通信。

1.3I2C模式

I2C(Inter-IntegratedCircuit)模式是一种两线制的串行通信协议,使用SCL(时钟线)和SDA(数据线)进行通信。I2C模式适用于低速通信,常用于连接多个从设备。

2.USART模块的寄存器

配置USART模块需要对几个关键寄存器进行设置。以下是常用的USART寄存器及其功能:

2.1UxMODE寄存器

UxMODE寄存器用于设置USART模块的基本工作模式,包括波特率、数据位、停止位、奇偶校验等。具体位字段如下:

UTXEN:发送使能位

URXEN:接收使能位

STSEL:停止位选择

PDSEL:数据位和奇偶校验选择

BRGH:波特率发生器高速模式选择

AUSART:异步模式选择

SYNC:同步/异步模式选择

2.2UxSTA寄存器

UxSTA寄存器用于设置和监控USART模块的状态,包括数据准备就绪、发送中断、接收中断等。具体位字段如下:

UTXBF:发送缓冲区满标志

UTXEN:发送使能位

UTXISEL:发送中断选择

OERR:溢出错误标志

FERR:帧错误标志

PERR:奇偶校验错误标志

URXDA:接收数据就绪标志

2.3UxBRG寄存器

UxBRG寄存器用于设置波特率。波特率的计算公式如下:

BRG

其中,Fosc是系统时钟频率,Baud

3.配置USART模块

3.1初始化USART模块

在使用USART模块之前,需要对其进行初始化。以下是一个示例代码,展示了如何在PIC24单片机上配置USART模块:

#includexc.h

#includelibpic30.h

#defineFCYLL//系统时钟频率

#defineBAUD_RATE9600//波特率

voidUSART_Init(void){

//配置U1MODE寄存器

U1MODEbits.AUSART=1;//选择异步模式

U1MODEbits.BRGH=1;//高速模式

U1MODEbits.PDSEL=0b00;//8位数据,无奇偶校验

U1MODEbits.STSEL=0;//1个停止位

U1MODEbits.UTXEN=1;//使能发送

U1MODEbits.URXEN=1;//使能接收

//计算波特率

U1BRG=(FCY/(16*BAUD_RATE))-1;

//配置U1STA寄存器

U1STAbits.UTXEN=1;//使能USART1发送

U1STAbits.URXEN=1;//使能USART1接收

//使能USART1模块

U1MODEbits.ON=1;

}

intmain(void){

//初始化系统

_CP0_SET_COUNT(0);

_TRISF1=0;//设置TX引脚为输出

_TRISF0=1;//设置RX引脚为输入

//初始化USART

USART_Init();

//主循