<2>.U1TCTL发送控制寄存器控制USART1的发送操作,表2-3为其位格式:
表2-3 发送控制寄存器U1TCTL
CKPL 时钟极性控制位
0 UCLKI 信号与 UCLK 信号极性相同
1 UCLKI 信号与 UCLK 信号极性相反
SSEL1、SSEL0 时钟源选择,此两位确定波特率发生器的时钟源,如表2-4所示:
表2-4 SSEL1、SSEL0 时钟源选择
URXSE 接收触发沿控制位
0 没有接收触发沿检测
1 有接收触发沿检测
TXWAKE 传输唤醒控制
0 下一个要传输的字符为数据
1 下一个要传输的字符是地址
TXEPT 发送器空标志,在异步模式与同步模式时是不一样的。
0 正在传输数据或者发送缓冲器(UTXBUF)有数据
1 表示发送移位寄存器和 UTXBUF 空或者 SWRST=1
<3>.U1RCTL接收控制寄存器控制USART1的接收操作。表2-5为其格式:
表2-5 接收控制寄存器U1RCTL
7 6 5 4 3 2 1 0
FE PE OE BRK URXEIE URXWIE RXWAKE RXERR
FE 帧出错标志位
0 没有帧错误
1 帧错误
PE 校验错误标志位
0 校验正确
1 校验错误
OE 溢出标志位
0 无溢出
1 有溢出
BRK 打断检测位
0 没有被打断
1 被打断
URXEIE 接收出错中断允许位
0 不允许中断,不接收出错字符并且不改变 URXIFG 标志
1 允许中断,出错字符接收并且能够置位 URXIFG
URXWIE 接收唤醒中断允许位,当接收到地址字符时,该位能够置位 URXIFG,当URXEIE=0,如果接收内容有错误,该位不能置位 URXIFG。
0 所有接收的字符都能够置位 URXIFG
1 只能接收到地址字符才能置位 URXIFG
RXWAKE 接收唤醒检测位。在地址位多机模式,接收字符地址位置位时,该机被 唤醒,在线路空闲多机模式,在接收到字符前检测到 URXD 线路空闲时,该机被唤起, RXWAKE 置位。
0 没有被唤醒,接收到的字符是数据
1 唤醒,接收的字符是地址
RXERR 接收错误标位
0 没有接收错误
1 有接收到错误
<4>. U1BR0、U1BR1 波特率选择寄存器和波特率调整控制寄存器U1MCTL。
U1BR0和U1BR1寄存器用来确定波特率的证书部分,其中U1BR0为低字节,U1BR1为高字节,U1BR0和U1BR1 两个字节结合起来为一个16位的字,成为UBR。
U1MCTL寄存器用来确定波特率的小数部分,如果波特率不是整数,带有小数,则小数部分由调整控制器U1MCTL的内容反应。
波特率计算公式如下:
波特率=BRCLK/(UBR+(M7+M6+M0)/8)
通过上面的计算公式设置U1BR0,U1BR1和U1MCTL寄存器可以得到需要的波特率。其中M7,M6M0为U1MCTL寄存器的相应位,当需要设置的时候,相应位为1,否则为0。
<5> U1RXBUF 接收数据缓存
接收缓存存放移位寄存器最后接收的字符,可由用户访问。读接收缓存可以复位接收时产生的各种错误标志、RXWAKE 位和 URXIFG1 位。如果传输 7 位数据,接收缓存内容右对齐,最高位为 0。 基于SP2349的多串口系统设计+电路图(4):http://www.youerw.com/zidonghua/lunwen_2951.html