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 字节与示波器上测量到的高低电平信号完美相符。

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

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

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

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

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


相关推荐

  • 西数移动硬盘不识别(移动硬盘怎么用)

    移动硬盘作为便携式存储器,很多用户都会在自己的电脑上安装。但最近有网友却反馈说自己的win10ltsb系统电脑出现了西数移动硬盘无法识别的情况,该怎么处理呢?下面本文就为大家整理了关于win10ltsb西数移动硬盘无法识别的具体解决措施,一起往下看吧。解决措施如下:1、首先打开计算机,在【此电脑】上鼠标右键,选择【管理】。2、这样,就进入了计算机管理界面。如下图,选择【磁盘管理】选项。3、在磁盘管理界面可以看到上方列出了所有内置磁盘和插入的磁盘,资源管理器中无法读取的磁盘也在..

    2022年4月12日
    444
  • 使用cookie登录

    前言:什么是cookie?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib库保存我们登录的Cookie,然后再抓取其他页面,这样就达到了我们的目的。一、Urllib库简介Urllib是python内置的H…

    2022年4月7日
    181
  • oracle删除索引释放空间,oracle 索引迁移,释放磁盘空间[通俗易懂]

    oracle删除索引释放空间,oracle 索引迁移,释放磁盘空间[通俗易懂]索引文件迁移步骤:准备工作:1)备份GBOS用户表索引:通过plsqlDevelop工具将GBOS用户表索引全部导出,以做备份。1.查看索引表空间具有那些数据文件selectfile_id,file_name,tablespace_name,bytes/1024/1024M,blocksfromdba_data_fileswhereTABLESPACE_NAME=’USERINDEX…

    2025年9月5日
    4
  • 突然的:图形设备驱动程序错误代码 43 -(已解决)

    突然的:图形设备驱动程序错误代码 43 -(已解决)昨天在使用Unity制作一些效果时,突然整体屏幕黑了,显示内容后,屏幕的分辨率变得很低,由原来的1920*1080,变成只有1024*768。然后我没管,继续使用Unity干活。然后发现Unity只要运行(PlayMode),CPU就占用了100%。我就知道电脑显卡之类的出问题了,我想准备要查看是什么问题的,但是刚好要搬家了。所以今天打开Unity运行后,发现CPU还是100%,然后使用:…

    2022年6月28日
    60
  • 详解自动化运维平台的构建过程[通俗易懂]

    详解自动化运维平台的构建过程[通俗易懂]2013年,我加入了聚美优品,当时成都团队仅有四五个人,负责一些辅助系统的日常运维,比如查查日志等。随着公司规模逐渐的扩大,一些重要的业务往成都迁移,这对成都团队是一个非常大的挑战。业务部署最开始是手工的,我们逐渐觉得应该有一个平台来满足我们的工作,所以我们打造了一个运维平台。本文将围绕平台里有关自动化的东西做一个介绍,当然我们是一个小团队,不足的地方请大家指正。传统运维带来的坑说到运维自动化,前…

    2022年5月17日
    64
  • 淘宝、天猫、京东、苏宁等平台抢购脚本

    淘宝、天猫、京东、苏宁等平台抢购脚本淘宝、天猫、京东、苏宁等平台抢购脚本扫码添加“SevenBlog”公众号,获取更多好玩脚本进入正题:建议使用Chrome浏览器1、安装浏览器插件,Ghelper(需要注册账号)打开浏览器扩展程序,并且打开开发者模式,将下载好的Ghelper解压,然后添加已解压的扩展程序2、浏览器地址栏输入chrome://apps/,并打开下面的网上应用店…

    2022年6月7日
    54

发表回复

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

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