首页 > 其他分享 >串口通信协议(hal库)

串口通信协议(hal库)

时间:2024-08-18 18:26:03浏览次数:13  
标签: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 库常用接口函数

标签:hal,串口,通信协议,通信,发送,寄存器,接收,数据
From: https://blog.csdn.net/2301_82087113/article/details/141281970

相关文章

  • UART串行通信协议
    UART串行通信协议UART(UniversalAsynchronousReceiver/Transmitter,通用异步接收器/发送器)是一种串行通信协议,用于异步通信,即发送和接收设备不需要共享一个时钟信号来同步数据传输。以下是UART的详细介绍:UART的基本特性异步通信:UART不使用时钟信号来同步数据,而是依赖于数据包......
  • Datawhale X 魔搭 AI夏令营-第四期(AIGC方向)-Task03-可图Kolors-进阶上分 实战优化
    往期内容:DatawhaleX魔搭AI夏令营-第四期(AIGC方向)-Task02-可图Kolors-精读代码实战进阶DatawhaleX魔搭AI夏令营-第四期(AIGC方向)-Task01-可图Kolors-LoRA风格故事挑战赛本期主要的学习内容为:使用ComfyUI工具来可视化文生图的工作流程界面,并基于Task01中LoRA微调得......
  • DataWhale AI夏令营-大模型微调-学习笔记3
     Task1:从零入门大模型微调一、问题概述从零入门大模型微调是Datawhale2024年AI夏令营第四期的学习活动(“大模型技术”方向),基于讯飞开放平台“星火大模型驱动阅读理解题库构建挑战赛”开展的实践学习。学习内容:基于讯飞大模型定制训练平台和spark-13b微调模型,生成高考......
  • “Datawhale X 魔搭 AI夏令营“ AIGC 学习笔记 Task3(优化)
    认识ComfyUICpmfyUI主要用于让生成和调整AI图像的过程变得更加直观和容易。它允许用户通过图形界面来控制文本到图像的生成过程中的各种参数。ComfyUI核心及图片生成流程ComfyUI核心模块由模型加载器、提示词管理器、采样器、解码器。本小节内容来自魔搭社区,具体内容可点......
  • “Datawhale X 魔搭 AI夏令营“ AIGC 学习笔记 Task2
    精读代码:baseline的代码主要分为以下几个部分:安装和卸载依赖包加载数据集数据预处理使用Data-Juicer进行数据处理数据整理与训练图像生成:设置正向提示词,反向提示词,执行次数,图片尺寸设置随机种子,控制图片是否可以重复生成,并将图像保存为jpg文件。合并图像......
  • “Datawhale x魔搭 AI夏令营”-AIGC方向-Day3从零入门AI生图原理&实践
    学习内容提要从通过代码实现AI文生图逐渐进阶,教程偏重图像工作流、微调、图像优化等思路,最后会简单介绍AIGC应用方向、数字人技术(选学)Task03:进阶上分-实战优化具体Datawhale教程学习内容见链接:https://linklearner.com/activity/14/10/37框架资源网站名称链接地......
  • Datawhale X 魔搭 AI夏令营-大模型应用(二)
    一.首先重大突破是完成了向量数据库的搭建二.初次的版本由于每次运行都要下载yuan模型,且每次都要运行模型嵌套函数,导致模型运行卡顿,以下是初版三.后来我们组想到可以先把模型下载到本地,然后优化代码,把两个代码文件合二为一,成功的提了速度,期间还有懒加载的思考,还有max_new_tok......
  • “Datawhale X 魔搭 AI夏令营”Day03
    一、打卡Datawhale二、学习1、ComfyUI(1)、什么是ComfyUIGUI是"GraphicalUserInterface"(图形用户界面)的缩写。简单来说,GUI就是你在电脑屏幕上看到的那种有图标、按钮和菜单的交互方式。ComfyUI是GUI的一种,是基于节点工作的用户界面,主要用于操作图像的生成技术,Comfy......
  • Datawhale X魔搭 AI夏令营
    DatawhaleX魔搭AI夏令营AIGC方向Task02学习笔记1.活动简介从零入门AI生图原理&实践是Datawhale2024年AI夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习—— 适合想入门并实践AIGC文生图、工作流搭建、Lo......
  • 【漫谈C语言和嵌入式004】深入理解RS232、RS422和RS485:嵌入式系统中的串行通信协议
            在嵌入式系统设计中,串行通信协议是设备间数据传输的重要方式。其中,RS232、RS422和RS485是三种常用的标准。这些协议不仅在工业控制、仪器仪表、网络通信等领域得到广泛应用,也在许多嵌入式系统项目中扮演着重要角色。在本文中,我们将深入探讨这三种串行通信标准......