在两个mcu中发送数据,可选择串行通讯,或者并行通讯。

假设要通信传输一个十进制数198,在通信过程中转换为二进制数11000110。

串行通讯需要在MCU间连接一根数据线,按照二进制位顺序发送即可。通信距离可以达到几米甚至几千米。

并行通讯需要八根数据线,每次发送八位二进制数。无法携带时钟信息,需要额外的时钟信号线,相对来说,成本高,抗干扰能力差,通信距离有限。

两种通讯方式相比较,串口通讯使用更加广泛。主要有Sbus,PPM,JTAG,UART,i2C,CAN,SPI,MIDI,USB,RS232,Morse Code等串行通讯协议。

根据时钟的不同,串行通信分为同步通信和的异步通信。

同步通讯:使用频率一致的的时钟,接收方时刻准备好接收数据,辅助bit串作为启停标识,效率高,支持一对多进行通讯。典型代表:i2C,SPI。

异步通讯:进行通讯的双方使用各自的时钟,接收方通过识别数据包中的起始位和结束为来实现信息同步。数据效率低,只支持一对一通讯。典型代表:UART。

详细解释UART通讯方式

使用UART协议进行通讯,需要三根数据线。发送数据:TX,接收数据:RX,参考:GND。需要知晓通讯双方的波特率,数据长度和开始停止bits。

例如,当接收器收到信号由高变低表示可以准备开始读取数据(解释下为什么是准备开始读取数据:当我们检测到数据起始位,开始读取数据时,通常延后52微秒再开始读取数据,原因是刚开始的时候数据不稳定),读取一个数据长度后,读取到停止bits后,停止读取数据。这里的开始或者停止bits相当于一个参考位置。

关于波特率,常用的波特率是9600,意思是每秒发送9600个码元,每个码元的长度是1,除以9600等于104微秒。描述接收机读取数据的速度,9600波特率的接收机在开始读取数据后,每隔104微秒采集一次数据,直到八位数据读取完毕,读取到数据停止位。

串口通信——串口uart相关推荐

  1. ARM内核单片机的串口通信(UART)使用(数据的收发)

    ARM内核单片机的串口通信(UART)使用 进入正题: 首先,要明白使用UART进行通信,无论收发数据,传输的都是16进制.而中文.英文.标点符号其本质都是16进制,只是一个中文需要用两个字节表示,一 ...

  2. (一)FPGA之串口通信(UART)

    (一)FPGA之串口通信(UART) 回到梦开始的地方,如今回过头来看串口协议,确实清晰了很多,但是奈何好记性不如烂笔头,我还是要重新记录一下学习的知识点,方便查找和学习. 波特率(Band Rate ...

  3. 搭建机器人电控系统——通信协议——串口通信USART/UART、RS232、RS485及其实例

    通信协议 串口通信详解 IIC通信详解 SPI通信详解 CAN通信详解 文章目录 通信协议 什么是串口? 串口分类 USART/UART.RS232.RS485的区别 串口协议原理 传输协议 需要定义 ...

  4. 串口通信之 UART

    1.介绍 UART (Universal Asynchronous Receiver and Transmitter)即通用异步接收发送器,是一种通用的串行数据总线,属串口通信的一种,用于异步通信.该 ...

  5. 51单片机-串口通信(串口向电脑发送信息电脑通过串口控制LED)

    文章目录 前言 一.串行通信口的功能以及串行通信口的结构及原理 1.1 串行通信口的功能 1.2 51单片机串口的结构 二.串行通信口的控制寄存器 2.1 串行控制寄存器SCON 2.2 电源控制寄存 ...

  6. MFC串口通信串口指示灯的实现

    前一段做了个串口通信小软件,当打开串口时串口指示灯亮,关闭串口时串口指示灯灭,实现方法如下: 1.在资源视图中,添加两个图标,分别为串口指示灯灭IDI_ICON1,串口指示灯亮IDI_ICON2. 2 ...

  7. Android串口通信:串口读写

    FROM:http://blog.csdn.net/burly/article/details/50512379 公司有个项目要用到串口通信,同事有写好一个DEMO,用的时候发现会有问题,从jni读串 ...

  8. 项目总结一:串口通信 || 串口接收数据和写入的数据不一致

    在做项目串口通信时遇到一个奇怪的bug,我写入的一个两个字节short类型数据3,接受到的数据很奇怪有时是一个很大的数,有时又是300多,为了找到原因也是废了一些时间,这里给分享一下,希望对做串口通信 ...

  9. 【ESP32学习笔记】#外设篇#(3)串口通信(UART)

    一.简介 官方文档:UART ESP32 有 3 个 UART 控制器(UART0.UART1 和 UART2),它们具有一组相同的寄存器. 每个 UART 控制器均可独立配置参数,如波特率.数据位长 ...

最新文章

  1. 201621123055《JAVA程序设计》第七周学习总结
  2. java synchronized 使用_Java中Synchronized的用法
  3. Siebel Admin: Siebel task manager commands
  4. 实现歌词效果自动滚动_只需五步,专业Pr软件实现视频歌词渐变色效果,你学会了吗?...
  5. G - Best ACMer Solves the Hardest Problem Gym - 101955G
  6. [我研究]Behavior Based Software Theft Detection - Hawk
  7. Homebrew更换源
  8. cocos2d-x 如何使用Visual Studio 2010和xcode 4混合编写手机游戏
  9. css3伸缩布局(附实例、图解)
  10. Cisco 路由器ntp服务配置
  11. welearn考试切屏会有显示吗_welearn班级测试答案
  12. 面试经常考的五个Sql查询
  13. 换发型特效怎么制作?建议收藏这些方法
  14. Ultraiso制作Centos7 优盘Udisk 启动镜像
  15. 智慧养老模式和智慧养老系统
  16. matplotlib 绘制柱状图且上方显示数据
  17. 高数 | 旋转体体积的一般公式
  18. 终于可以向重复的鉴权代码说byebye 了 -- (玩转 AOP和Annotation )
  19. MosMedData: 新冠肺炎胸部 CT扫描数据集上基于3D-CNN实现二分类
  20. 汽车倒车雷达系统设计

热门文章

  1. Consider defining a bean of type ‘com.zsb.dao.UserDao‘ in your configuration.
  2. 测试基本技巧与方法;
  3. 数据结构课设(散列表的设计与实现---电话号码查找系统)
  4. 【2020年11月】研读和改进淘宝自动下单程序
  5. 如何在SQL Server 2005中修复损坏的数据库
  6. VMware,Inc. (Virtual Machine ware)
  7. 正则匹配---匹配包含指定字符串
  8. 测试小故事74:没有计划的日子
  9. 九、JavaSE-Set接口
  10. Android果冻效果(阻尼动画)