【STM32】UART和USART的区别[通俗易懂]

【STM32】UART和USART的区别[通俗易懂]1、UART:universalasynchronousreceiverandtransmitter通用异步收发器;2、USART:universalsynchronousasynchronousreceiverandtransmitter通用同步异步收发器。1、通用异步收发器:通用异步收发器是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传…

大家好,又见面了,我是你们的朋友全栈君。

1、UART:universal asynchronous receiver and transmitter通用异步收发器;

2、USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器。

 

1、通用异步收发器

通用异步收发器是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。

UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是5~8个数据位,一个可用的奇偶位和一个或几个高位停止位。

接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。  

在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。例如,如果产生一个奇偶错误,UART就置位奇偶标志。

2、通用同步异步串行接收/发送器:

USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。

USART收发模块一般分为三大部分:时钟发生器、数据发送器和接收器。

1、时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。发送时钟引脚XCK仅用于同步发送模式下,

2、发送器部分由一个单独的写入缓冲器(发送UDR)、一个串行移位寄存器、校验位发生器和用于处理不同桢结构的控制逻辑电路构成。使用写入缓冲器,实现了连续发送多帧数据无延时的通信。

3、接收器是USART模块最复杂的部分,最主要的是时钟和数据接收单元。数据接收单元用作异步数据的接收。除了接收单元,接收器还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收UDR)。接收器支持与发送器相同的帧结构,同时支持帧错误、数据溢出和校验错误的检测。

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

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

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


相关推荐

  • win10-11全版本下载地址MSDN纯净版ISO-20220217更新[通俗易懂]

    win10-11全版本下载地址MSDN纯净版ISO-20220217更新[通俗易懂]本文搜集整理微软官方发布的Windows10正式版镜像下载链接,从RTM原始正式版开始,按照时间倒序排列,即越往上的越新。转载:http://news.mydrivers.com/1/440/440540.htm谨记:不管从什么地方下载,文件名可以不一样,但是体积、SHA1校验码必须一致,尤其是后者,有一点不同的也不要安装。下载链接均为ed2kP2P方式,使用迅雷即可。

    2022年7月20日
    32
  • itextpdf生成列表基本用法

    itextpdf生成列表基本用法随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。在上一篇文章使用itextpdf生成表格基本用法中,介绍了生成表格的基本步骤和一些常用设置,同样的,在某些需求下,我们需要在pdf中展示列表,体现条理性,itextpdf同样支持,这个开源库支持很多种列表风格来满足…

    2022年6月22日
    32
  • 链表排序python快排_python链表实例

    链表排序python快排_python链表实例此文章是跟DataWhale开源组织刷leetcode算法题时所写,主要内容借鉴算法通关手册1.链表排序简介在数组排序中,常见的排序算法有:冒泡,选择,插入,希尔,归并,快速,堆,计数,桶,基数排序等而对于链表排序而言,因为链表不支持随机访问,访问链表后面的节点只能依靠next指针从头部顺序遍历,所以相对于数组排序问题来说,链表排序问题会更加复杂一点。下面来总结一下适合链表排序与不适合链表排序的算法:适合链表的排序算法:冒泡,选择,插入,归并,快速,计数,桶,基数排序不适合链表的排序算法:希尔

    2022年10月11日
    4
  • Linux 搭建 JumpServer 堡垒机

    Linux 搭建 JumpServer 堡垒机搭建JumpServer堡垒机

    2022年6月15日
    34
  • Altium Designer 13 只能选中当前层元器件

    Altium Designer 13 只能选中当前层元器件今天打开一个ad工程,发现pcb只能选中当前层原件,其它层原件都不能选中。如图所示:这个问题以前都没遇到过,百度后发现是视图配置里面设置了。首先右键pcb文件如下图所示:然后会弹出下面的窗口:在单层模式的位置可以设置如何显示。如果需要取消这些设置 可以按下快捷键shift+s

    2022年7月15日
    41
  • MySQL修改表名注释

    MySQL修改表名注释MySQL修改表名注释altertabletest1comment’修改后的表的注释’;

    2022年6月1日
    44

发表回复

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

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