当前位置: 首页 > news >正文

STM32F103 学习笔记-21-串口通信(第1节)-串口通信协议简介

引言

上节章我们讲解了通信的基本概念,包括并行通信、串行通信、同步和异步通信等。本章,我们正式进入串口通信的学习。串口通信是嵌入式开发中最常用的通信方式之一,理解其原理对后续实践至关重要。本节重点讲解串口通信协议的理论部分,分为物理层和协议层来阐述,确保新手小白能轻松入门。

一、串口通信协议概述

串口通信协议并非STM32独有,而是一种通用标准,适用于各种处理器。我们将串口学习分为三部分:协议简介、STM32外设详解和实战编程。本节先讲解协议部分。

串口通信协议可分为两个层次:

  • 物理层:规定通信系统的硬件特性,如电平标准、接口形状等,确保数据在物理介质上的传输。简单说,就是“用什么硬件来通信”。

  • 协议层:规定数据的打包和解包逻辑,统一收发双方的规则。简单说,就是“用什么规则来通信”。

用一个生活比喻:物理层就像我们选择用嘴巴还是手势交流(硬件方式),协议层则像选择用中文或英文交流(软件规则)。

二、物理层详解

物理层涉及实际硬件连接,常见的有三种标准:RS-232标准、USB转串口和原生串口(TTL电平)。它们的核心区别在于电平定义。

1. RS-232标准

  • 电平特点:RS-232使用负逻辑,逻辑“1”用-15V左右表示,逻辑“0”用+15V左右表示。这与TTL电平(高电平为1,低电平为0)相反,且电压差大(约30V),抗干扰能力强,适合工业环境。

  • 硬件连接:需要电平转换芯片(如MAX3232、SP3232)将控制器的TTL电平转换为RS-232电平。设备通过DB9接口连接(开发板上常见母头,需用公头串口线)。

  • 应用场景:主要用于工业设备直接通信,如工控机、老式调制解调器。

  • 扩展说明:DB9接口有公头(针)和母头(孔)之分,连接时需匹配。如果想与电脑通信,可购买USB转串口线(需安装驱动)。

2. USB转串口

  • 电平特点:电脑使用USB信号,而单片机是TTL电平,因此需要转换芯片(如CH340、PL2303、CP2102)进行中介。

  • 硬件连接:开发板上的USB转串口模块(如霸道板使用CH340)默认连接到单片机串口1(PA9为TX,PA10为RX)。通过跳线帽可切换至其他串口。

  • 应用场景:主要用于设备与电脑通信,如打印调试信息、烧录程序。

3. 原生串口(TTL电平)

  • 电平特点:TTL电平直接来自芯片引脚,高电平为3.3V或5V(STM32用3.3V),低电平为0V。逻辑简单:高电平为1,低电平为0。

  • 硬件连接:设备间直接通过导线连接,TX与RX交叉即可,无需电平转换芯片。

  • 应用场景:常用于控制器与串口传感器或模块通信,如GPS模块、Wi-Fi模块(ESP8266)、蓝牙模块(HC-04)等。

三、协议层详解

协议层定义了数据包的格式,确保收发双方能正确解析数据。一个标准的串口数据包包括起始位、数据位、校验位和停止位。

数据包基本组成

  • 起始位:用1个逻辑0(低电平)表示数据包开始,起到同步作用。

  • 数据位:紧接起始位,是有效数据,长度可为5、6、7、8位(STM32支持9位)。例如,发送字符“A”(ASCII 0x41)时,数据位为8位二进制数。

  • 校验位:可选位,用于抗干扰。校验方式包括:

    • 奇校验(Odd):数据位和校验位中“1”的个数为奇数。例如,数据01101001有4个“1”,则校验位为“1”使总数为奇数。

    • 偶校验(Even):数据位和校验位中“1”的个数为偶数。例如,同上数据,校验位为“0”使总数为偶数。

    • 0校验(Space):校验位固定为“0”。

    • 1校验(Mark):校验位固定为“1”。

    • 无校验(None):不包含校验位,直接传输数据。

  • 停止位:用0.5、1、1.5或2个逻辑1(高电平)表示数据包结束,通常使用1位。

数据包示例

假设数据位为8位,无校验,1位停止位,则一帧数据包括:1位起始位 + 8位数据位 + 0位校验位 + 1位停止位,共10位。波特率(如9600bps)决定每位的时间长度。

四、总结与注意事项

  • 关键点

    • 物理层关注硬件:RS-232需电平转换,USB转串口用于电脑通信,原生TTL最简。

    • 协议层关注规则:数据包格式可配置,校验位增强可靠性。

  • 实践提示

    • 使用开发板时,注意跳线帽设置,避免连接错误。

    • 电脑端需安装USB转串口驱动(如CH340驱动)。

    • 多设备通信时,确保波特率、数据位、停止位等参数一致。

本节理论部分为后续STM32串口外设学习打下基础。下一章我们将深入STM32串口的功能框图,结合寄存器讲解配置方法。


备注:本笔记基于《零死角玩转STM32》教材整理

http://www.gsyq.cn/news/159554.html

相关文章:

  • 学长亲荐8个AI论文软件,研究生论文写作不再难!
  • DDD笔记 | 领域驱动设计(DDD)实战
  • 快速幂
  • 我发现流末尾数据丢失,后来才知道重写_transform的flush方法
  • 实用指南:Spring Boot:DTO、VO、BO、Entity 的正确工程化分层
  • 私有知识库:数字时代的知识守护者
  • 中成空间的官网和联系方式是多少?2025年智能气膜服务商推荐 - 速递信息
  • 云原生密钥管理:Sealed Secrets与Vault
  • scheme 符号求导
  • 『JROI-4』沈阳大街 2
  • [quote]all the wood behind one arrow
  • [从程序员到架构师] 微服务场景实战 - 注册发现
  • Java毕设项目推荐-基于Java的网上宠物店管理系统宠物销售、服务预约、库存管理、客户互动【附源码+文档,调试定制服务】
  • Elasticsearch核心原理——倒排索引、映射与分词对搜索质量的影响路径
  • Cucumber特性文件编写规范
  • 汽车领域智能体构建全解析—腾讯云黑客松Agent应用创新挑战赛微信公众号赛道实战复盘
  • nt!MiInitializeLoadedModuleList分析和全局变量nt!PsLoadedModuleList初始化和LoaderBlock->LoadOrderListHead的关系非常重要
  • transformer-explainer
  • 自动化测试覆盖率:达到90%+的实战体系构建
  • 【毕业设计】基于Java的网上宠物店管理系统基于Java技术的智慧宠物店管理系统设计(源码+文档+远程调试,全bao定制等)
  • 【Week1_Day1】软件测试每周学习记录与反思
  • 基于纳米微粒激发平面波的米氏散射FDTD仿真模拟与验证
  • 【开题答辩全过程】以 河金新生报到管理APP为例,包含答辩的问题和答案
  • 鸿蒙6核心功能实战:手把手教你开发分布式协同小应用
  • 饰品商拍提效:AI图生图实现白底图转上身图
  • mtr
  • java计算机毕业设计小学生在线数学学习平台 轻量级Java毕业设计:小学生数学在线教学与测评一体化平台 基于SpringBoot的小学生数学互动学习及智能作业系统
  • 面向 K8s 1.33 的 Linux 服务器深度运维实战(CentOS/RedHat/Ubuntu 通用)
  • springboot城镇保障性住房管理系统(11594)
  • 基于SpringBoot+Vue的学生捐赠物品管理系统设计与实现毕设