《智能取餐柜实战》7-串口通信介绍

本小节主要介绍串口通信的基本内容,纯理论介绍,为后续小节做基础铺垫。

目标:

  1. 了解 RS232 与 TTL 的区别
  2. 掌握串口通信协议的数据包组成
  3. 掌握串口通信中的使用要点

往期

《智能取餐柜实战》6-LED控制逻辑与实现-CSDN博客

《智能取餐柜实战》5-STM32工程创建-CSDN博客

《智能取餐柜实战》4-系统组成和项目分解-CSDN博客

《智能取餐柜实战》3-常用软件安装和使用-CSDN博客

《智能取餐柜实战》2-嵌入式软件开发规范-CSDN博客

《智能取餐柜实战》01-项目介绍-CSDN博客

串口简介

串口通信是一种设备间常用的通信方式,市面上也有非常多的串口传感器,例如 GPS、Modus 温湿度传感器等等,同时电子工程师也喜欢用串口进行系统调试,通过串口输出日志内容,方便跟踪系统的运行。

对于串口通信,想必各位同学一定听过网口,他就是一种串口。

而对于 RS485、RS232 这些也都是串口,这两种在工业中用的比较多,而对于单片机(STM32F103)板子上的接口,仅支持 TTL 电平串口。

RS232 与 TTL

RS232 与 TTL:这两种的区别除了接口不一样,最大的区别是区分高低电平的电压不一样。

举个例子,RS232 高电平的取值是-15V 到 -3V,而 TTL 的高电平取值在 2.4V-5V

RS232 接口

RS232 一般有 9 个引脚,也有 25 个的,称为 DB9 和 DB25,常见的是 DB9,也就是上图的这种

具体介绍参考:rs232接口_RS232串口通信:接口定义、标准接法详细说明,一看就懂了-CSDN博客

TTL 电平接口:

TTL 电平接口比较简单,一般只需要接 3 根线:RX、TX、GND

  • RX:数据接收
  • TX:数据发送
  • GND:地,用于电平校准

我们只需要使用一个 TTL 转 USB 模块(如上图),就可以将单片机输出的 TTL 电平串口信息发送到 PC 上,在单片机上我们也可以看到有 TX、RX 的标志。

特别注意的是需要将 RX、TX 需要反接,也就是 CH340 模块上的 TX 需要接到 STM32 单片机上的 RX,CH340 上的 RX 需要接到 STM32 单片机上的 TX。

UART 协议

在讲到 UART 协议之前,需要提到以下几个词:

  • 波特率:指传输速率,每秒钟传输的位数,也就是每一个码元的的持续时间不一样,必须设置,常见的有 4800、9600、115200 等
  • 起始信号:通信开始前发起一个起始信号,每次通信都有,称为起始位,必须有
  • 有效数据:有效数据在每一次传输的时候一般是 8 位,也可以是 5、6、7 位,必须有
  • 校验位:校验位在可以是奇校验、偶校验、无校验,也就是可以没有
  • 停止信号:停止信号可以有 0.5、1、1.5、2 个数据为表示,停止位只能是高电平,必须有

下图是一个包括起始位、数据为、校验位、停止位的数据包的时序图

特别注意

通信的双方必须要约定好以下内容:

  • 波特率
  • 停止位
  • 校验位
  • 数据位

如果波特率不一致,会导致乱码,举个例子:

发送方设置为 115200,接收方设置为 9600,在上面我讲了,波特率指的是一秒钟传输多少位,如果波特率不一致,那么发送方每秒会发送 115200 个位,接收方一秒只接受 9600,这个时候就会出现数据错误,导致输出乱码的问题,如果这个问题细究下去,就是数据采样的时间点的问题了,此处不展开了。

结语

在本小节我们简单介绍了串口 UART,同时介绍了 TTL 串口的使用要点,并对 UART 通信的数据包进行讲解。在下一小节,我们将使用 STM32 进行串口通信。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值