单片机串口学习

Posted zhouwalle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机串口学习相关的知识,希望对你有一定的参考价值。

站在巨人的肩膀:https://blog.csdn.net/qq_38410730/article/details/79887200

串口通信:按位传输数据的串行通信方式,串口通信中通常使用的是异步串口通信,即没有时钟线,所以两个设备要通信,需要设置波特率相同(1152009600)

1、串口通信物理层:

 

在串口通信中通常 PC 机的 DB9 为公头,单片机上使用的串口 DB9 为母头,通过一根直通串口线进行相连。

PC1 PC2
RXD TXD
TXD RXD

2、串口通信协议层:

通信标准:RS-232、RS-485等;

以RS-232为例:

RS232 的通信协议比较简单,通常遵循 96-N-8-1 格式。

“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 的数据位表示,只要双方约定一致即可

以上是关于单片机串口学习的主要内容,如果未能解决你的问题,请参考以下文章

单片机入门应用层软件开发的单片机学习之路-----UART串口通讯和c#交互...

STC学习:串口通信

c8051f320学习,单片机不外乎时钟IO串口USB等外设用法

串口简单的操作

Arduino和C51之串口通信

循环队列原理及在单片机串口通讯的应用