打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
单片机—UART接口知识简介(上)
1  UART接口简述
 
UART即通用异步收发器,可设置成全双工异步通讯方式,与PC等通讯;或设置成半双工同步模式与其他周边外设通信,如A/D或D/A。SPMC65系列单片机内置了UART模块,它的作用是将外部设备串行数据转换为并行数据接收;将内部并行数据转换为串行数据发送。UART模块特点如下:
 
·两个接口引脚。
 
      RXD为数据接收引脚(与PC5复用,使用RX功能时设置为输入口);
      TXD为数据发送引脚(与PC4复用,使用TX功能时设置为输出口)。
 
·提供标准的异步全双工通信。
 
·可编程的波特率。
 
·可进行偶校验、奇校验或禁止校验。
 
·停止位可设置为1位或2位。
 
·支持发送中断。
 
·支持接收中断。
 
·高抗噪声能力的数据接收(接收中间连续进行3次采样,并对结果进行多数决策)。
 
·在接收中进行帧校验和奇偶校验。
 
·溢出检测。
 
·CPU工作频率为8 MHz时,波特率可在2 400~38 400 bps之间编程设置。
 
UART的数据帧如图6.5所示。
 
 

UART接口通常用于与PC通信,或者用于单片机间的通信。
 
2  控制寄存器
 
    1.UART控制寄存器P_UART_Ctrl($46,R/W)
 
可以通过写UART控制寄存器P_UART_Ctrl($46)对UART的中断使能、UART功能、帧格式等进行设置。P_UART_Ctrl默认初始值为#00h,具体位的功能如表6.8所列。
 
 
 
bit7  RXIE:接收中断使能位。
                  1=使能;
                  0=禁止。
 
bit6  TXIE:发送中断使能位。
                   1=使能;
                  0禁止。
 
bit5  RXEN:UART接收功能使能位。
                  1=使能;
                  0=禁止。
 
bit4  TXEN:UART发送功能使能位。
                  1=使能;
                  0=禁止。
 
bit3  SOFTRST:软件复位。
                  写:
                  1=复位所有UART模块;
                  0=无效。
 
bit2  STOPSEL:停止位长度选择位。
                   1=2位停止位;
                   0=1位停止位。
 
bit1  PSEL:校验类型选择位。
                  1=偶校验;
                   0=奇校验。
 
bit  0PEN:校验使能。
                  1=使能;
                  0=禁止。
 
2.UART波特率分频器P_UART_Baud($47,R/W)
 
SPMC65系列单片机的UART波特率可通过软件设置UART波特率分频器P_UART_Baud($47)的值,通过换算可得到所需要的UART波特率。P_UART_Baud默认初始值:#00h。具体功能如表6.9所列。
 
 
 
bit[7:0]  波特率[7:0]:UART波特率分频器。
 
SPMC65系列单片机的UART波特率是由一个波特率寄存器和一个8位定时/计数产生的。每次定时/计数器计到最大计数值(0xFF)后,再加1时,一个时钟信号就会被发送到波特率分频器产生电路。在该电路中,时钟信号会通过一个16分频的计数器,然后产生波特率。定时/计数器溢出后,会自动重新载入波特率寄存器中的值。
 
波特率寄存器中的内容为8位的无符号数,UART波特率的计算公式:
 
波特率=Fsys/[16×(256一UARTBAUD)]
 
按下面的公式计算P_UART_Baud寄存器的值:
 
    UARTBAUD=256=Fsys/(16×波特率)
UARTBAUD即P_UART_Baud中的值。波特率计算结果不能大于38 400,如表6.10所列。
 
 
 
3.UART状态寄存器P_UART_Status ($48。R/W)
 
读取UART状态寄存器P_UART_Status($48)可获得UART运行的一些状态信息,如UART中断标志、帧错误信息等;而写该寄存器的相应位则是清除相应位的标志。P_UART_Status默认初始值为#00h。具体位的功能如表6.11所列。
 
 
 
bit7  RXIF:接收中断标志。
                  1=接收数据准备好(满);
                  0=接收数据未准备好。
 
bit6  TXIF:发送中断标志。
                  1=发送数据准备好(空);
                  0=发送数据未准备好。
 
    bit5  BUSY:UART正在进行发送标志位。
                  1=发送正在进行;
                  0=发送结束,等待下一次发送。
      bit[4:3]  保留。
 
bit2  OERR:溢出错误标志(一般是前一次接收到的数据尚未读取,而当前又有数据接    收进来覆盖原数据而造成的)。
           读:
                  1=发生溢出错误;
                   0=未发生溢出错误。
           写:
                  1=将标志清零;
0=无效。
 
    bitl   PERR:奇偶校验错误标志。
读:
                  1=奇偶校验错误;
                  0=无奇偶校验错误。
           写:
                  1=将标志清零;
                  0=无效。
 
    bit0  FERR:帧错误标志(一般是由于接收不到停止位而产生)。
           读:
                  1=发生帧错误;
                  0=无帧错误。
           写:
                  1=将标志清零;
                  0=无效。
 
4.UART数据寄存器P_UART_Data($49,R/W)
 
SPMC65系列单片机的发送、接收数据寄存器共用P_UART_Data一个寄存器。读取P_UART_Data寄存器中的值时,会自动清除P_UART_Status寄存器中的接收中断标志位;而写数据到P_UART_Data寄存器时,会自动把P_UART_Status寄存器中的发送中断标志位(即发送准备好标志位)清零。具体位的功能如表6.12所列。
 
 
 
 bit[7:0]  UARTDATA[7:0]:UART数据寄存器。
                  读:读取接收到的数据同时RXIF标志位清零;
                  写:将发送数据写入寄存器同时TXIF标志位清零。
 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nolatin/archive/2008/10/21/3119836.aspx
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
51单片机-串口通信
15W4K58S4 实验14:串行口
中国石油大学
atmega16串口通信
单片机入门培训专题(十五)- UART串行通信(二)
嵌入式学习笔记之UART通信协议
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服