“96”表示的是通信波特率为9600。串口通信中通常使用的是异步串口通信,既没有时钟线,所以两个设备要通信,必须要保持一致的波特率,当然,波特率常用值还有4800、115200等。
“N”表示的是无校验位,由于串口通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。
校验方法有奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)以及无校验(noparity)。
“8”表示的是数据位数为8位,其数据格式在前面介绍异步通信中已讲过。当然数据位数还可以为5、6、7位长度。
“1”表示的是1位停止位,串口通讯的一个数据包从起始信号开始,直到停止信号结束。
数据包的起始信号由一个逻辑0的数据位表示,而数据包的停止信号可由0.5、1、1.5或2个逻辑1的数据位表示,只要双方约定一致即可。
串口通信原理:
通信首先要有个通信,可以简单的把通信看成一个小桶,发送方住水桶里装水,接收方从水桶中取水。如果你要和对方通信首先需要将桶盖打开,再将水装入到桶中,这时接收方才能够从桶中取到水。这里就存在着一定的问题:
1、如果桶盖还没有打开,发送方已经发送了。这时接收方再从桶中取水,肯定取的水不对,会一部分缺失了。解决方式就是让桶盖打开再往其中加水。
2、但是桶盖何时打开,发送方何时发送,这个不好把握。
解决方法:接收方接到数据时,要返回一个应答标志,告诉发送方我已经取到数据了,而且是取得到正确数据才应答,否则不理会,继续取数据。
或者一直查询,直到与发送方发来的数据一致再停止取数据。
一般的,进行串口通信总有一个是主动方一个是被动方,而且二者传输数据时,会有一定的协商好的数据格式,二者发送接收都按照此数据格式进行。
还没有评论,来说两句吧...