【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • fastclick

    fastclickfastclick–处理移动端click事件300毫秒延迟安装:npminstallfastclick–save   之后,在main.js中引入    importFastClickfrom’fastclick’    并绑定到bodyFastClick.attach(document.body);1、兼容性iOS3及更高版本的移动SafariiOS5及更高版本的C…

    2022年6月19日
    51
  • Fork/Join框架基本使用[通俗易懂]

    1.概述ava.util.concurrent.ForkJoinPool由Java大师DougLea主持编写,它可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。本文中对Fork/Join框架的讲解,基于JDK1.8+中的Fork/Join框架实现,参考的Fork/Join框架主要源代码也基于JDK1.8+。这几篇文章将试图解释Fork/…

    2022年4月5日
    43
  • “ASP.default_aspx”并不包含“DropDownList1_SelectedIndexChanged”的定义,其解决方法。[通俗易懂]

    “ASP.default_aspx”并不包含“DropDownList1_SelectedIndexChanged”的定义,其解决方法。[通俗易懂]“ASP.default_aspx”并不包含“DropDownList1_SelectedIndexChanged”的定义,其解决方法。在使用DropDownList控件的DataBind方法,将ArrayList数组绑定在DropDownList空间中,执行程序,出现错误:…出现错误的原因:…解决方法:…

    2022年7月18日
    12
  • divmod的使用[通俗易懂]

    divmod的使用[通俗易懂]今天在学习pandas的官方文档时,遇到了divmod这个函数,调用了help(divmod)。pandas返回了一行话如下:divmod(x,y,/)Returnthetuple(x//y,x%y).#即x//y返回的是x除以y以后的整数部分,#x%y返回的是x除以y后的余数部分下面看一下,其在pandas中是如何使用的:>>>s=pd.Series(np.arange(10))>>>s001

    2022年10月26日
    0
  • Hibernate annotation多对多配置

    Hibernate annotation多对多配置

    2022年1月30日
    38
  • asp.net dropdownlist的值怎么设置_ASPNET程序开发招聘

    asp.net dropdownlist的值怎么设置_ASPNET程序开发招聘我刚刚开始学习ASP.NET,所以当然有点辛苦,懂的不是很多…今天写程序时碰到了控件DrowDownList.–列表控件….当我改变控件的值时,怎么也不能改变另一个DropDownList控件的值,查了MSDN之后才知道--原来我的AutoPostBack属性没有设置成”true”所以不能刷新,但是当我改完之后确实能够刷新了,但是每次刷新之后并不能改变需要触发事件的那个

    2022年9月12日
    0

发表回复

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

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