【51单片机】串口通讯从入门到精通:原理拆解 + 参数详解 + 51 单片机实战指南

🔥小龙报:个人主页

🎬作者简介:C++研发,嵌入式,机器人方向学习者

❄️个人专栏:《工科必装软件安装教程》《嵌入式的开端 ---- 51单片机》
永远相信美好的事情即将发生

文章目录

  • 前言
  • 一、什么是串口?它的作用?
    • [1.1 串行通讯](#1.1 串行通讯)
    • [1.2 并行通讯](#1.2 并行通讯)
    • [1.3 串并行通讯的特点与对比](#1.3 串并行通讯的特点与对比)
  • 二、串口的参数
    • [2.1 串行通信的基本方式](#2.1 串行通信的基本方式)
    • [2.2 串口电平标准​](#2.2 串口电平标准)
    • [2.3 串口数据结构](#2.3 串口数据结构)
    • [2.4 串口波特率](#2.4 串口波特率)
    • [2.5 串口校验位](#2.5 串口校验位)
      • [2.5.1 N 无校验](#2.5.1 N 无校验)
      • [2.5.2 O 奇校验](#2.5.2 O 奇校验)
      • [2.5.3 E 偶校验](#2.5.3 E 偶校验)
      • [2.5.4 固定校验](#2.5.4 固定校验)
    • [2.6 串口停止位](#2.6 串口停止位)
    • [2.7 空闲位​](#2.7 空闲位)
  • 总结与每日励志

前言

串口作为嵌入式开发中核心的通讯接口,凭借低成本、简线路、广适配的优势,成为设备间数据交互的关键载体。本文从串口本质与串并行通讯差异切入,系统拆解单/半/全双工模式、电平标准、数据帧结构等核心参数,详解波特率、校验位、停止位的配置逻辑,为51单片机串口编程、设备间远距离通信打下坚实基础,助力快速掌握串口通讯核心原理与应用要点。

一、什么是串口?它的作用?

串行口,简称为串口,什么是串口?它的作用是什么?​

两个人交流,一般通过在说话在空气中产生的声波传输,两台机器交流,我们可以模拟摩斯密码一样,其中一台机器通过IO发送对应频率高低电平的脉冲,另一台机器接收进行解析,但这种操作IO的方式需要我们考虑的问题很多,多快的频率,谁发谁收,丢失了一个脉冲怎么办等等,于是后面就有了规范这些交流的协议,简称为通讯协议,基于通讯方式的不同,也有了串行通讯和并行通讯两种通讯方式。​
串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。

1.1 串行通讯

串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机,计算机与外设之间的远距离通信,先传输低位再传输高位。如下图所示:

1.2 并行通讯

并行通信通常是将数据字节的各位用多条数据线同时进行传送,通常是8位,16位,32位等数据一起传输

1.3 串并行通讯的特点与对比

串行通信的特点
优点传输线少,长距离传送时成本低,且可以利用电话网等现成的设备
缺点 :但数据的传送控制比并行通信复杂。​
并行通信的特点
优点控制简单,传输速度快;
缺点: 由于传输线较多,长距离传送时成本高且接收方的各位同时接受存在困难,抗干扰能力差。​

总结:

各有特点,现阶段绝大部分的通讯口都使用串口。​

二、串口的参数

2.1 串行通信的基本方式

(a.) 单工通信 :数据只能单方向传输。​

(b.) 半双工通信 :通信双方交替进行双向数据传输,但两个方向的传输不能同时进行。​

(c.) 全双工通信 :通信双方可同时进行数据收发的工作方式51单片机的串行口是全双工传输方式。

2.2 串口电平标准​

传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:​

TTL电平(transistor transistor logic ) : +3V~+5V 表示 1 , 0V 表示 0​

RS232 电平 : -3~-15V 表示 1 , +3~+15V 表示 0​

RS485 电平 :两线压差 +2~+6V 表示 1 , -2~-6V 表示 0 (差分信号)​

2.3 串口数据结构

一个完整的串行数据,也就是一个数据帧(Data frame),包括起始位、数据位、停止位、奇偶校验位 。数据位前后即帧头和帧尾,包含一些必要的控制信息。其中,MSB(Most Significant Bit)是指低地址存放最高有效字节LSB(Least Significant Bit)则是低地址存放最低有效字节(一般使用这个)

MSB与LSB:以20存储为例子

20 - > 0x14 -> 0b0001 0100​

MSB: 0010 1000​

LSB: 0001 0100

2.4 串口波特率

通俗解析就是,波特率越高,传输速度越快。​

常见的串口典型的"波特率"值是300/1200/2400/9600/19200/38400/115200 /230400等。​
串口通信速率,单位时间内传输二进制的位数(例波特率为9600,指1s内传输9600位,则传输一位需要1/9600=104.17us) ​

2.5 串口校验位

2.5.1 N 无校验

不加校验位,可以少传输一位数据

2.5.2 O 奇校验

要传输的数据中(不包含校验位)有奇数个'1' 则校验位为'0', 反之为'1'

例:数据'1111 000' 偶数个'1' 所以添加校验位为'1' 整体为'1111 0000 1'

2.5.3 E 偶校验

要传输的数据中(不包含校验位)有偶数个'1' 则校验位为'0', 反之为'1'

2.5.4 固定校验

M(Mark 标记、符合)检验位固定为1​

S(Space 空间、空地)校验位固定为0

2.6 串口停止位

停止位,停止位是一帧数据结束的标志,可以是1bit、1.5bit或者2bit逻辑"1" 高电平​
如果没有停止位,接收设备就无法知道何时一个数据包结束,从而无法正确地处理接收到的数据

2.7 空闲位​

空闲位不算是串口报文内的数据, 它是发送完一组报文后,总线会自动将电平拉高,产生1bit 逻辑"1"的空闲位​。

总结与每日励志

✨本文系统介绍了串口通讯的核心原理与应用要点。首先对比了串行与并行通讯的优缺点,指出串行通讯凭借低成本、简线路的优势成为主流。随后详细解析了单工、半双工和全双工三种工作模式,以及TTL、RS232等电平标准。重点阐述了串口数据帧结构,包括起始位、数据位、校验位和停止位的作用,并解释了波特率对传输速度的影响。最后说明了奇偶校验和空闲位的功能。文章为51单片机串口编程和设备间通信提供了理论基础,帮助开发者快速掌握串口通讯的关键技术参数与配置方法。

相关推荐
小付同学呀20 小时前
C语言学习(五)——输入/输出
c语言·开发语言·学习
小龙报20 小时前
【51单片机】 给单片机加 “安全锁”!看门狗 WDT:原理 + 配置 + 复位验证全拆解,让程序稳定不跑飞
驱动开发·stm32·单片机·嵌入式硬件·物联网·51单片机·硬件工程
国科安芯20 小时前
芯片抗单粒子性能研究及其在商业卫星测传一体机中的应用
嵌入式硬件·安全·fpga开发·性能优化·硬件架构
梦幻精灵_cq21 小时前
学C之路:不可或缺的main()主函数框架(Learn-C 1st)
c语言·开发语言
一路往蓝-Anbo1 天前
第 9 章:Linux 设备树 (DTS) ——屏蔽与独占外设
linux·运维·服务器·人工智能·stm32·嵌入式硬件
m0_531237171 天前
C语言-操作符进阶
c语言·开发语言
猪八戒1.01 天前
ESP-IDF 新版
stm32
无限进步_1 天前
21. 合并两个有序链表 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
宁静致远20211 天前
STM32CubeMX、MDK(Keil MDK)、git、vscode等工具中统一编码设置(UTF-8),确保中文支持,避免乱码问题
git·vscode·stm32
一路往蓝-Anbo1 天前
第 12 章:Linux 侧 RPMsg 用户态驱动与数据接口
linux·运维·服务器·stm32·单片机·嵌入式硬件·网络协议