单手拿捏STM32 HAL库之串口基础知识讲解


作者:沈已成
b站视频链接: 还未制作,点击打开往期视频,持续更新中!!!

一、什么是串口通信

  在STM32中串口通信通常指的是USART(通用同步异步收发器),其主要作用是允许STM32与外部设备之间通信,包括发送和接受信息。串口通信是通过串行数据传输方式进行数据交换的通信方式,相比并行数据传输方式,串口通信只需要少量的引脚,因此更适合在资源有限的系统中使用。
  串口传输数据需要两个引脚,TX(发送引脚)、RX(接收引脚),STM32上的串口资源有USART1、USART2、USART3
串口通信

二、串口基本参数

  波特率:波特率(Baud Rate)是指每秒钟传输的比特数。它表示了数据传输的速率,也可以理解为数据传输的频率。
  波特率决定了每秒钟传输的比特数,例如,波特率为9600表示每秒钟传输9600个比特。波特率越高,数据传输速度越快,但也需要更高的传输带宽和更可靠的通信环境。
  在串口通信中,发送端和接收端必须使用相同的波特率才能正确地进行数据传输。如果发送端和接收端的波特率不一致,接收端可能无法正确解析数据,导致数据传输错误。

  起始位:在串口通信中,数据的传输是通过一系列连续的位来表示的,起始位指示数据帧的开始。通常起始位为逻辑低电平(0),当检测到起始位时,接收端开始接收数据。

  数据位:数据位是串口通信中用于传输数据的位数。数据位决定了每个数据字节中实际数据所占的位数。

  停止位:停止位是串口通信中用于标识数据帧结束的位。在数据位之后,会加上一个或多个停止位,用于告诉接收端数据帧的结束位置。通常停止位为逻辑高电平(1)

  校验位:校验位是串口通信中用于检测数据传输错误的位。在发送数据时,可以选择在数据位后面添加一个校验位。常见的校验方式有奇偶校验和循环冗余校验(CRC)。接收端会根据校验位的值来检测数据是否传输出错,以确保数据的可靠性

三、串口补充知识点

3.1 串行和并行

  上面说到了串行和并行,那么这里简单解释一下这两个概念。
  串行,指的是逐位传输数据,即每次只传输一个位或一个字节,数据会按顺序一个一个传输,串行通信通常使用单根线路进行传输,因此传输速度较慢,但是可以节省成本和资源。
  并行,指的是同时传输多个位或字节,在并行通信中,多个数据会同时通过多条线路传输,可以实现更快的数据传输速度。然而,因为要使用多条线路,速度更快的同时,成本和资源的消耗也会比较高。
总的来说,串口通信适用于较长距离的数据传输,而并行通信适合于更快速度的数据传输,在实际应用的时候,我们需要根据需求选择合适的通信方式。

在这里插入图片描述

3.2 同步通信和异步通信

  同步通信:发送方发送消息后会等待接收方的响应,直到接收到响应之后才能继续执行后续操作。发送方和接收方之间需要保持一致的通信步调,以确保消息的可靠传输和正确处理。那么也就说明通信的双方需要约定一个时间
  异步通信:发送方发送消息后不需要等待接收方的响应,而是可以继续执行后续操作。发送方和接收方之间不需要保持一致的通信步调。那么就是双方无需约定好一个时间。
  总的来说,同步通信要求发送方和接收方之间保持一致的通信步调,而异步通信则允许发送方和接收方并行处理任务。一般来说,我们使用的模块如果是同步通信那么是会有一根时钟线,如果是异步通信,一般来说没有时钟线。当然,这也不是绝对的,这个我们后面具体使用到的时候还会再提及。

在这里插入图片描述

3.3 单工、全双工和半双工

  单工:单工通信是指数据只能在一个方向上传输的通信方式。在单工通信中,通信的一方只能发送数据,而另一方只能接收数据,不能同时进行发送和接收。单工通信的特点包括简单、成本低廉和易于实现。但是由于只能单向传输数据,因此在一些应用场景下,单工通信的效率可能较低。
  全双工:数据可以在通信双方之间同时进行双向传输,也就是说,通信双方可以同时发送和接收数据,就像两个人可以同时进行双向对话一样。这种通信方式允许同时进行双向的数据传输,提供了更高的通信效率。
  半双工:在半双工通信中,数据传输是单向的,通信双方不能同时进行双向传输,而是需要在发送和接收之间进行切换。这就好比一次只能有一个人说话,另一个人需要等待对方说完才能发言。半双工通信可以实现双向通信,但是不能同时进行双向数据传输。
  总的来说,全双工通常用于需要高效双向数据传输的场景,比如电话通信和网络通信中的双向数据传输。而半双工通常用于一次只需要单向数据传输的场景,比如对讲机通信和串口通信中的单向数据传输。
那么我们用上述学习的知识点描述一下串口通信,串口通信是异步半双工串行通信

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值