STC单片机串口2工作模式详解:8位与9位UART

需积分: 0 0 下载量 35 浏览量 更新于2024-07-01 收藏 543KB PDF 举报
"本文详细介绍了STC单片机的串行异步收发器的工作原理和实现方法,重点关注了串口2的相关配置和功能。" 在STC单片机中,串行异步通信是一种常见的数据传输方式,尤其适用于远距离通信和外设连接。本章主要围绕串口2(Serial Port 2,简称SPI2)的配置和操作展开,其中S2CON寄存器是控制串口2的关键。 S2SM0位是串口2工作模式的决定因素。当S2SM0为0时,串口2工作在8位UART模式,支持可变波特率,适合一般的数据传输需求。而当S2SM0设置为1时,串口2转变为9位UART模式,同样支持可变波特率,这种模式常用于多机通信,因为额外的第9位可以用来区分地址帧和数据帧。 S2SM2位是多机通信控制位,与S2REN位配合使用。如果S2SM2为1并且S2REN为1,接收机将进入地址帧选状态。在此状态下,接收到的第9位S2RB8可用于判断是否为地址帧。如果S2RB8为1,表示收到的是地址帧,数据会被送入S2BUF,并触发接收中断S2RI。反之,如果S2RB8为0,那么这帧数据将被忽略,S2RI不会被置位。在方式1中,如果S2SM2为0,即使S2REN为1,接收机也会接收所有数据而不进行地址筛选。 S2REN位用于控制串口2的接收功能。当S2REN为1时,串行接收器RxD2被激活,开始接收数据。相反,若S2REN为0,串行接收被禁止,无法接收任何信息。 S2TB8位在方式1中用于发送第9位数据。根据应用需求,可以通过软件设置S2TB8为1或0,以发送校验位或用于多机通信中的地址/数据帧标识。 S2RB8位则用于接收第9位数据。在方式1下,它作为接收到的第9位,可以是奇偶校验位或地址/数据帧标志。根据S2RB8的值,可以判断接收到的信息类型。 S2TI和S2RI是串口2的中断请求标志位。S2TI在发送停止位时置1,提示CPU有发送中断请求。S2RI则在接收到停止位的中间时刻置1,表示有接收中断请求。注意,CPU响应中断后,这两个标志位都需要通过软件清零。 STC单片机的串行异步收发器通过精细的配置和寄存器控制,实现了灵活的UART通信,包括8位和9位模式、多机通信以及中断机制,确保了高效可靠的数据传输。理解这些知识点对于开发基于STC单片机的串行通信系统至关重要。