单片机uart串口通信_uart接口图片

单片机uart串口通信_uart接口图片RS-232-C标准采用负逻辑方式,标准逻辑“1”对应-5v~-15v,标准逻辑“0”对应+5V~+15v。如果需要和单片机系统的CMOS/TTL电平进行连接,则需要进行电平转换,一般采用MAX232进行电平转换。 1  UART接口简述 UART即通用异步收发器,可设置成全双工异步通讯方式,与PC等通讯;或设置成半双工同步模式与其他周边外设通信,如A/D或D/A。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

RS-232-C标准采用负逻辑方式,标准逻辑“1”对应-5v~-15v,标准逻辑“0”对应+5V~+15v。如果需要和单片机系统的CMOS/TTL电平进行连接,则需要进行电平转换,一般

采用MAX232进行电平转换。

 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串口通信_uart接口图片

UART接口通常用于与PC通信,或者用于单片机间的通信。

 

2  控制寄存器

 

    1.UART控制寄存器P_UART_Ctrl($46,R/W)

 

可以通过写UART控制寄存器P_UART_Ctrl($46)对UART的中断使能、UART功能、帧格式等进行设置。P_UART_Ctrl默认初始值为#00h,具体位的功能如表6.8所列。

单片机uart串口通信_uart接口图片

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所列。

单片机uart串口通信_uart接口图片

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所列。

单片机uart串口通信_uart接口图片

3.UART状态寄存器P_UART_Status ($48。R/W)

 

读取UART状态寄存器P_UART_Status($48)可获得UART运行的一些状态信息,如UART中断标志、帧错误信息等;而写该寄存器的相应位则是清除相应位的标志。P_UART_Status默认初始值为#00h。具体位的功能如表6.11所列。

单片机uart串口通信_uart接口图片

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所列。

单片机uart串口通信_uart接口图片

 bit[7:0]  UARTDATA[7:0]:UART数据寄存器。

                  读:读取接收到的数据同时RXIF标志位清零;

                  写:将发送数据写入寄存器同时TXIF标志位清零。

 


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194020.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 几种web字体格式建议收藏

    目前,文字信息仍是网站最主要的内容,随着CSS3技术的不断成熟,Web字体逐渐成为话题,这项让未来Web更加丰富多彩的技术拥有多种实现方案,其中之一是通过@font-face属性在网页中嵌入自定义字体

    2021年12月20日
  • Word2Vec原理详解

    Word2Vec原理详解写在前面为了更方便读者学习,笔者下载了word2vec源码共享在云盘(google官网有时会访问不了),地址。还有关于word2vec实战的地址下面是转载内容:word2vec是Google于2013年开源推出的一个用于获取wordvector的工具包,它简单、高效,因此引起了很多人的关注。由于word2vec的作者TomasMikolov在两篇相关的论文[3,4]

    2022年5月17日
  • centos安装python3.7_怎么给电脑安装java环境

    centos安装python3.7_怎么给电脑安装java环境可通过以下命令来查看操作系统的具体版本,本例中采用的是CentOS7.6。一般来说,CentOS中默认已经安装有python2.x,因为有一些系统命令可能会需要用到python2,所以不能卸载。我们只需再安装python3.x即可

    2022年9月24日
  • MapReduce编程快速入门

    MapReduce编程快速入门MapReduce编程规范用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交运行mr程序的客户端)Mapper阶段继承Mapper类(1)用户自定义的Mapper要继承自己的父类(2)Mapper的输入数据是KV对的形式(KV的类型可自定义)(3)Mapper中的业务逻辑写在map()方法中(4)Mapper的输出数据是KV对的形式(KV的类型可自定义)(5)map()方法(maptask进程)对每一个<K,V>调用一次Reducer阶段继承Reduce

    2022年6月16日
  • 基于麦克风阵列的现有声源定位技术有_阵列原理

    基于麦克风阵列的现有声源定位技术有_阵列原理《基于麦克风阵列声源定位系统.doc》由会员分享,可免费在线阅读全文,更多与《基于麦克风阵列声源定位系统》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。1、()cosiiiiettH,则有:cos()ex()()cosjiijijjiijretjkrretr()由于()()cos()cosex()jjijjijjjjiettHtHjkrr…

    2022年9月22日
  • excel怎么赋值0和1_excel单元格默认值

    excel怎么赋值0和1_excel单元格默认值getCell 获取列 需要用 createCell获取即可。导出报表时,明明是有数据的可就是报空指针异常。排查后发下报表表格没内容时不能用。

    2022年8月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号