串口通信协议(hal库)

目录

串口通信协议

串行/并行

同步/异步

单工/半双工/全双工

DR寄存器

轮询方式

中断方式

主要中断事件:

DMA方式

USART 模块的常用 HAL 库常用接口函数


串口通信协议

串口通信(Serial Communication)指的是数据通过一个串行的通道进行传输,每次传输一位数据。常见的串口通信协议包括:

  • UART(Universal Asynchronous Receiver/Transmitter):通用异步收发器,用于异步串口通信。
  • USART(Universal Synchronous/Asynchronous Receiver/Transmitter):通用同步/异步收发器,支持同步和异步串口通信。
  • RS-232、RS-422、RS-485:串口通信的标准,用于不同的物理接口和通信距离要求。

串行/并行

  • 串行通信:数据位按顺序一个接一个地传输,通常用于长距离通信和减少线路数。
  • 并行通信:数据位同时通过多条线路传输,适合短距离高速度数据传输。

同步/异步

  • 同步通信:发送和接收的数据流使用一个时钟信号来同步数据的发送和接收。发送方和接收方在同一个时钟信号的驱动下进行数据交换。

    • 优点:适合高速度的数据传输。
    • 缺点:需要额外的时钟信号线。
  • 异步通信:不使用共享的时钟信号。数据以特定的格式(通常是起始位和停止位)进行传输,接收方通过检测数据流中的起始位来同步数据。

    • 优点:不需要额外的时钟信号线,简化了设计。
    • 缺点:适合较低的传输速度。

单工/半双工/全双工

  • 单工(Simplex):数据只能单向传输。例如,广播系统中接收器只能接收信号,不能发送信号。

    • 优点:简单,成本低。
    • 缺点:只能进行单向通信。
  • 半双工(Half-Duplex):数据可以双向传输,但不能同时进行。发送和接收不能同时进行,需要切换方向。例如,对讲机。

    • 优点:比单工稍复杂,但能实现双向通信。
    • 缺点:不能同时发送和接收,需控制通信方向。
  • 全双工(Full-Duplex):数据可以同时双向传输。例如,电话通信。

    • 优点:同时发送和接收数据,提高通信效率。
    • 缺点:复杂度高,成本较高。

DR寄存器

在 STM32 系列微控制器中,DR 寄存器(数据寄存器)用于存储要发送或接收的数据。具体功能如下:

  • 发送数据寄存器:存储要发送的数据。当数据写入该寄存器时,UART 模块将数据传输到发送线。
  • 接收数据寄存器:接收接收到的数据。数据从接收线传输到该寄存器。

轮询方式

在轮询方式中,主程序会定期检查串口状态寄存器,以确定是否可以进行数据的发送或接收。这种方式简单,但可能导致 CPU 空闲时间浪费。

中断方式

在中断方式中,串口通信的操作(如数据发送和接收)通过中断触发,当相关事件发生时,处理程序(中断服务程序)会被调用,执行数据处理任务。

主要中断事件:

  • 发送期间:

    • 发送完成(TX Complete):当数据发送完成时触发。
    • 清除发送(TX Empty):当发送数据寄存器为空时触发。
    • 发送数据寄存器空(TXE):表示可以写入新的数据到发送数据寄存器。
  • 接收期间:

    • 空闲总线检测(Idle Line Detected):检测到总线空闲时触发。
    • 接收数据寄存器非空(RXNE):表示接收数据寄存器中有数据可读。

DMA方式

DMA(Direct Memory Access,直接存储器访问)方式可以用来减少 CPU 的负担。使用 DMA 时,数据可以直接在内存和外设之间传输,而无需 CPU 介入。

USART 模块的常用 HAL 库常用接口函数

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值