注明:本文仅代表我个人观点和理解,欢迎讨论!
前言:鄙人只是个普通1.5本院校的嵌入式小菜鸟,本文详细记录了鄙人的学习过程,并总结了一些其他基本知识帮助我理解,故余虽愚,卒获有所闻。我认为学习是要输入和输出共同存在的。如何理解?就是我向内输入知识的时候,我理解了,我看懂了听懂了,但是你未必能内化成自己的东西向外输出。就像你学生时期上课看懂了几个新概念学了几个新公式,你就觉得你理解了你行了,然后一做题发现还是有点困难,就证明还是没有完全掌握,于是就有“刷题”。所以要掌握一个知识必须重复输出多次,中学时的那句名言“教学相长也”同样应证了这个道理。本文就以学习江科大stm32的教程为例,从输入到输出彻底理解串口通信协议。某些概念我尝试用比较通俗的语言来另作解释帮助理解,可能有些比喻不太恰当,但也仅代表我个人理解,望大家多多包涵哈。
一、串行通信的基本知识
学习通信协议前,我们需要先一起来了解一下基本知识!
那我们为什么要学通信啊,有什么用???直接讲设备之间的通信可能比较抽象,我们可以把设备当作人,把设备之间的通信当作人之间的交流,一个人的能力再强大,如果没有和其他人交流的能力,那他能发挥的作用也终究存在上限。设备也一样,设备之间如果能进行通信,就能充分发挥他们的功能!而人之间的交流在某些情况下需要有些约定俗成,设备之间也就有了通信协议。
所以,我们就能理解:
通信的目的是设备之间互相接收和发送数据,拓展硬件系统。
通信协议是通信双方按照约定协议收发数据。
1.基本通信方式及特点
数据通信的两种基本方式:并行通信和串行通信。
并行通信
各个数据位同时进行传送,每个数据位单独使用一根数据线,多位数据同时传输。传输速度快,效率高,但是在长距离传输时硬件成本较高,一般只适用于短距离(小于30米)的数据通信。计算机内部的数据传送一般采用并行。
串行通信
各个数据位逐位传输,只使用一条数据线,每一位数据占据一个