• 深入浅出理解串口


    深入浅出理解串口



    一、什么是串口?

    传输数据的方式有两种:串行通讯和并行通讯
    串口是串行接口的简称,串口是一种物理接口!而不是通讯协议!
    顾名思义,并口就是并行接口的简称
    不管是并口还是串口,都是一种物理接口!!!
    所以,串行通讯对应的接口我们称为串口;并行通讯对应的接口我们称为并口

    在这里插入图片描述
    在这里插入图片描述串行通讯是把数据排成一队,按照排队的先后顺序传输数据
    并行通讯是每个数据自己组成一队,然后同时传输

    常用给串行通讯协议有:IIC、SPI、JTAG、UART、CAN、RS232、RS485、USB等
    嵌入式中常说的串口,其实就是值UART

    二、串行通讯

    根据使用的时钟不同(同步时钟和异步时钟),我们可以将串行通讯分为同步通讯和异步通讯;
    同步时钟:时钟频率一致;可以一对多,效率高
    常见的IIC、SPI都属于同步通讯
    异步时钟:时钟频率不一致;只能一对一,效率低
    常见的UART是属于异步通讯

    三、UART协议

    1、UART与USART

    USART(universal synchronous asynchronous receiver and transmitte): 通用同步异步收发器
    USART是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。
    UART(universal asynchronous receiver and transmitter): 通用异步收发器
    异步串行通信口(UART)就是我们在嵌入式中常说的串口,它还是一种通用的数据通信议。
    双方使用UART通讯时 ,至少需要三根线、知道对方的波特率、数据长度、开始及停止位

    2、三根线:

    TX:发送数据线
    RX:接受数据线
    GND:参考点

    3、波特率

    指的是传输每个字节的时间
    例如波特率为115200,那就代表我一秒可以传输115200个字节

    4、数据格式

    串口一个字节的格式:
    在这里插入图片描述

    没有奇偶校验位的格式:
    在这里插入图片描述以9600 8N1(9600波特率,8个数据位,没有校验位,1位停止位)为例,这是目前最常用的串口配置,现在我们传输’O’'K’两个ASCII值,'O’的ASCII为79,对应的二进制数据为01001111 ,'K’对应的二进制数据为01001011 ,传输的格式数据如下图所示:01111001010110100101

    5、奇偶校验位

    奇校验:发送一组二进制数据,如果其中位数为1的个数为奇数时,则校验位为0,否则为1。
    偶校验:发送一组二进制数据,如果其中位数为1的个数为偶数时,则校验位为0,否则为1。
    0校验:校验位固定为0。
    1校验:校验位固定为1。


    总结

    串口是物理接口!不是通讯协议

  • 相关阅读:
    判断二叉树是否为满二叉树
    指纹面容识别登录流程概述
    mvn 打包特殊配置
    应用播放器构建相关回调
    windows查看连接过wifi的密码
    HTTP之代理、网关、隧道
    【算法基础】:(二)希尔排序
    【OpenPCDet】稀疏卷积SPConv-v1.2代码解读(3)
    Java_Servlet 知识点
    【C语言 | 预处理】C语言预处理详解(一) —— #define、#under、#if、#else、#elif、#endif、#include、#error
  • 原文地址:https://blog.csdn.net/qq_45025738/article/details/127678402