STM32下串口通信——HAL库


一、串口通信的方式

1、串行和并行通信

  • 串行通信: 设备间通过一根数据信号线,按数据位形式一位一位地传输数据的通信方式,同一时刻只能传输一位数据。
    在这里插入图片描述
  • 并行通信: 使用8、16、32或者更多的数据线进行通讯的方式,同一时刻可以传输多个数据位。
    在这里插入图片描述

对比两者的通信方式,发现并行通信方式比串行通信方式速度快多了,但是并行同行需要多根数据线进行传输,相对于串行通信需要更高的成本,而且对传输时钟同步的要求比较高,会存在许多信号干扰的问题。

2、同步通信和异步通信

  • 异步通信: 不需要时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据,某些通讯中还需要双方约定数据的传输速率(波特率),以便更好地同步。
  • 同步通信: 相反,同步通信收发设备双方会使用一根信号线来约束时钟,在时钟信号的驱动下进行数据的同步和传输。

3、单工、全双工和半双工通信

  • 单工通信: 信息只能单方向传输的工作方式,一个固定为发送设备,另一个固定为接收设备,发送端只能发送信息不能接收信息,接收端只能接收信息不能发送信息,只需一根信号线就可以完成通信。
  • 全双工通信: 在同一时刻,收发双方设备之间可以同时进行数据的收发,但这种方式要求通信双方均有发送设备和接收设备。需要两根数据线来完成通信。
  • 半双工通信: 半双工通信可以实现双向的通信,但是相较于全双工而言,不能够在两个方向上同时进行,同一时刻只能在一个方向上进行信息的传输,但是它可以切换方向传输(同一时刻信息的传输方向只能有一个)。

二、串口的通信协议

1、电平标准

通讯标准 电平标准
5v TTL 逻辑0:0 ~ 0.5v 逻辑1:2.4 ~ 5v
RS-232 逻辑0:+3v ~ +15v 逻辑1:-15v ~ -3v

2、 协议层

串口通讯的数据包由发送设备通过自身的TXD接口传输到接收设备的RXD接口。在串口通讯的协议层中,规定了数据包的内容,它由启始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据。

3、串口数据包的基本组成

  • 波特率: 两个通信的设备间约定好的通信速率,即是每个码元的长度。
  • 起始位和停止位: 通信数据包的起始信号一般是逻辑电平 “0”,停止信号一般可以由0.5、1、1.5等数据位表示,只要通信双方约定好即可。
  • 有效数据: 起始位之后就是哟啊传输的数据主体,一般约定长度为5、6、7、8位。
  • 数据检验位: 紧接着有效数据位之后是一个可以选择的数据校验位。在通信传输过程中容易受外界的影响,可以在传输的时候加个校验位来解决这个问题,由奇校验、偶校验、0校验、1校验。

三、STM32串口以及USB转TTL

这里我们学习的是stm32下完成串口通信,我们就介绍一下stm32下的串口。

1、STM32串口的介绍

USART-通用同步异步收发器是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART,它是在 USART 基础上裁剪掉了同步通信功能(时钟同步),只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 UART。

USART 功能框图:
在这里插入图片描述

2、USB转TTL的介绍

我们常用的USB转串口的模块就是CH340模块,USB转串口主要是用于设备(stm32)与PC机之间的通信。

  • usb转ttl的框图:
    在这里插入图片描述

四、STM32下用HAL库实现串口通信

1、File -> New Project
在这里插入图片描述
2、时钟的相关配置
在这里插入图片描述
3、选择串口USART1
在这里插入图片描述
4、设置时钟树
在这里插入图片描述

5、设置工程名字和工程存储目录

在这里插入图片描述
6、导出生成代码

在这里插入图片描述
7、用keil打开工程文件,并在主程序中添加代码
在这里插入图片描述

HAL_UART_Transmit(&huart1,(uint8_t *)("hello windows!\n"),15,0xffff);

8、Debug仿真设置

在这里插入图片描述
9、进行软件仿真

在这里插入图片描述
10、观察结果串口打印成功!
在这里插入图片描述
11、单片机连接电脑并烧录程序

在这里插入图片描述
打开上位机观看串口输出正常!

总结

本次做的串口实验是查询式的串口传输,就是不管收没收到,单片机只管发,这是非常浪费资源的,不过我们初步学习可以了解了解串口的传输与通信,后面会讲用中断实现串口,在中断中实现串口传输。

猜你喜欢

转载自blog.csdn.net/wer4567/article/details/127374342