USART0和USART1是串行通信接口,两个USART具有同样的功能,能够分别运行于异步UART模式和同步API模式。
1 串口模式
UART模式提供异步串行接口,在UART模式中,有2中接口选择方式:2线接口和4线接口:
2线接口:使用RXD(P0_2)、TXD(P0_3)。
4线接口:使用引脚RXD(P0_2)、TXD(P0_3)、RTS(P0_5)和CTS(P0_4)。
UART模式的操作具有以下特点:
8位或者9位负载数据。
奇校验、偶校验或者无奇偶校验。
配置起始位和停止位。
配置LSB(最低有效位)或者MSB(最高有效位)首先传送。
独立收发中断。
独立收发DMA触发。
奇偶校验和帧校验出错状态。
UART模式提供全双工传送,接收器中的位同步不影响收发功能。传送一个UART字节包括1个起始位,8个数据位,1个作为可选的第9位数据或者奇偶校验位,再加上1个或者2个停止位。UART操作由USART和状态寄存器UxCSR以及UART控制寄存器UxUCR来控制,这里的x是USART的编号,其数值为0或1、
位 | 名称 | 复位 | R/W | 描述 |
7 | MODE | 0 | R/W | USART模式选择: 0:SPI模式 1:UART模式 |
6 | RE | 0 | R/W | 启动UART接收器。注意UART完全配置之前不能接收。 0:禁止接收器 1:使能接收器 |
5 | SLAVE | 0 | R/W | SPI主或者从模式选择 0:SPI主模式 1:SPI从模式 |
4 | FE | 0 | R/W0 | UART帧错误状态 0:无帧错误检测 1:字节收到不正确停止位级别 |
3 | FRR | 0 | R/W0 | UART奇偶校验错误状态 0:无奇偶校验 1:字节收到奇偶错误 |
2 | RX_BYTE | 0 | R/W0 | 接收字节状态,UART模式和SPI模式。当读U0DBUF时该位自动清零,通过写0清除它,这样能有效丢弃U0BUF中的数据。 0:没有接收字节 1:接收字节就绪 |
1 | TX_BYTE | 0 | R/W0 | 传送字节状态,UART和SPI从模式 0:字节没有传送 1:写到数据缓存寄存器的最后字节已传送 |
0 | ACTIVE | 0 | R | USART传送/接收主动状态: 0:USART空闲 1:USART在传送或者接收模式忙碌 |
选择USART模式为UART模式并允许接收寄存器设置示例:
//设置UART模式
U0CSR |= 0X80;
//允许接收
U0CSR |= 0x40;
位 | 名称 | 复位 | R/W | 描述 |
7 | FLUSH | 0 | R/W1 | 清除单元。当设置时,该事件将会立即停止当前操作并返回单元的空闲状态。 |
6 | FLOW | 0 | R/W | UART硬件流使能。从RTS和CTS引脚选择硬件流控制的使用 0:流控制禁止 1:流控制使能 |
5 | D9 | 0 | R/W | UART奇偶校验位。当使能奇偶校验,写入D9的值决定发送的第9位的值。如果收到的第9位不匹配收到的字节的奇偶校验,接收报告ERR。 0:奇校验 1:偶校验 |
4 | BIT9 | 0 | R/W | UART9位数据使能。当该位是1时,使能奇偶校验位传输即第9位。如果通过PARITY使能奇偶校验,第9位的内容通过D9给出。 0:8位传输 1:9位传输 |
3 | PARITY | 0 | R/W | UART奇偶校验使能。除了为奇偶校验设置该位用于计算,必须使能9位模式 0:禁用奇偶校验 1:使能奇偶校验 |
2 | SPB | 0 | R/W | UART停止位数。选择要传送的停止位的位数 0:1位停止位 1:2位停止位 |
1 | STOP | 0 | R/W | UART停止位的电平,必须不同于开始为的电平 0:停止位低电平 1:停止位高电平 |
0 | START | 0 | R/W | UART起始位电平,闲置先的极性采用选择的起始位级别的电平相反的电平 0:起始位低电平 1:起始位高电平 |
位 | 名称 | 复位 | R/W | 描述 |
7:0 | DATA[7:0] | 0x00 | R/W | USART接收和传送数据。当写这个寄存器的时候数据被写到内部的传送数据寄存器,当读取该寄存器的时候,数据俩字内部读取的数据寄存器。 |
//定义一个字符型变量
unsigned char temp;
//读出U0DBUF中的数据
temp = U0DBUF;