uart接口是什么_各种接口的详细介绍

uart接口是什么_各种接口的详细介绍我面试的时候一般喜欢问应聘者一个问题:UART与RS232/RS485的区别与联系?很多人对于这个问题答得都不是很好。还有些人压根就没有想过这个问题,一直认为他们是同一个东西,就是咱们俗称的串口。我刚入嵌入式的大门时,对这个问题也困惑过很久,后来终于弄明白了。跟大家一起分享一下吧。简单来说,区别在于UART是一种接口,而RS232/RS485是一种总线。UART这个接口,后面可以接TTL电平,这就是我们俗称的普通的串口。而UART如果接了RS232/RS485的转换芯片,那么后面的总线上..

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

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

我面试的时候一般喜欢问应聘者一个问题:UART与RS232/RS485的区别与联系?很多人对于这个问题答得都不是很好。还有些人压根就没有想过这个问题,一直认为他们是同一个东西,就是咱们俗称的串口。

 

我刚入嵌入式的大门时,对这个问题也困惑过很久,后来终于弄明白了。跟大家一起分享一下吧。

 

简单来说,区别在于UART是一种接口,而RS232/RS485是一种总线。UART这个接口,后面可以接TTL电平,这就是我们俗称的普通的串口。而UART如果接了RS232/RS485的转换芯片,那么后面的总线上就是按照RS232/RS485规则来传输数据。RS232/RS485总线的具体规则我们后续再讨论,本篇主要详解TTL下的情况。UART接TTL电平时,+5V等价于逻辑“1”,0V等价于逻辑“0”。

如下例子主要说明一下UART接TTL电平这种方式是怎么传输二进制数据的。这是我在项目中的一个例子,用STM32F429的Uart4口采集TOF模块测量得到的距离信息。

UART的Rx连接测距模块TOF的Tx。TOF向UART发送了0x32 0x33 0x6d 0x6d 0x0a 五个字节,对应的ASCII码是23mm,表示测到的距离。

 

0x32 0x33 0x6d 0x6d 0x0a 对应的示波器上测到波形如下所示,我们来一起分析一下。

 

 uart接口是什么_各种接口的详细介绍

 

 

首先,UART的波特率,配置的是9600。对于串口来说,波特率=比特率,所以串口现在比特率为9600,所以每一个bit需要的时间为100us。所以示波器抓的波形对应的比特流是:

00100110010110011001010110110101011011010010100001

 

对于Uart,我配置的代码如下:

 

USART_InitStructure.USART_BaudRate = UART4_BAUD; //9600

USART_InitStructure.USART_WordLength = USART_WordLength_8b;

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_Parity = USART_Parity_No ;

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

USART_Init(UART4, &USART_InitStructure);

 

所以Uart的数据位宽为8bit,再加上起始位0,结束为1.所以比特流分割为如下:

0  0100 1100  1

0  1100 1100  1

0  1011 0110  1

0  1011 0110  1

0  0101 0000  1

考虑硬件总线上的数据时序,CPU接收到后的比特序列颠倒:  

0100 1100 颠倒为  0011 0010  即为0x32

1100 1100 颠倒为  0011 0011  即为0x33

1011 0110 颠倒为  0110 1101  即为0x6d

1011 0110 颠倒为  0110 1101  即为0x6d

0101 0000 颠倒为  0000 1010  即为0x0a

 

完美! 发送的0x32 0x33 0x6d 0x6d 0x0a 字节与示波器上测量到的高低电平信号完美相符。

作为嵌入式软件工程师,对软硬件的接口分析到这种程度,一般情况下,就够用了。

—————————–上善若水,大智若愚———————————–

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193900.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • delphi 进程通信_多线程实现java

    delphi 进程通信_多线程实现java多线程总体认识当前程序是一个进程,进程只是一个工作环境,线程是工作者; 每个进程都会有一个启动线程(或叫主线程),也就是说:大量的编码都是写给这个主线程的; ExitThread(0);退出主线程; 系统不允许一个没有线程的进程存在,所以程序就退出了. ExitThread函数的参数是一个退出码,这个退出码是给之后的其他函数用的,这里随便给个无符号整数即可….

  • 06 _使用命令在hadoop的HDFS中存储文件

    06 _使用命令在hadoop的HDFS中存储文件

  • phony 详解_phoning翻译

    phony 详解_phoning翻译phony详解1:一个目标,可以产生target文件,也可以不产生target文件echo目标就不产生echo文件不产生文件,则每次makeecho。都将执行recipe。因为make总是妄图产生一个比temp更新的target–echo文件。echo:temp@echo”$(shellls-ltemp)”2:一个目标,可以

    2022年10月27日
  • cookie mapping「建议收藏」

    cookie mapping「建议收藏」CookieMapping的映射工作可以在SSP方进行,SSP方根据用户的Cookie信息,映射发送竞价请求中的DSP方Cookie,DSP方在竞价请求消息中获取自己的Cook

  • idea2019开发第一个java程序HelloWorld「建议收藏」

    idea2019开发第一个java程序HelloWorld「建议收藏」用idea2019开发第一个java程序:(马克-towin:idea破解不在本讲义范围之内)新手建议忽略此部分,先把eclipse用熟。技术是一样的。idea缺省配置是黑色的,很晃眼,可以(Files/settings/editor/colorscheme,然后右侧框中选择(Default(白色)或者Darcula(黑色)))底下都一样了。右击src/new/javaclass,名字叫…

  • Odin Inspector 系列教程 — Enum Toggle Buttons Attribute

    Odin Inspector 系列教程 — Enum Toggle Buttons AttributeEnumToggleButtonsAttribute特性:在水平按钮组中绘制枚举而不是下拉列表。枚举多选按钮主要是应用了System.FlagsusingSirenix.OdinInspector;usingUnityEngine;publicclassEnumToggleButtonsAttributeExample:…

发表回复

您的电子邮箱地址不会被公开。

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