当前位置: 首页 > news >正文

如何使用UART(STM32 HAL库)

UART (通用异步收发器)是在 USART (通用同步异步收发器)基础上裁剪掉了同步通信功能,只剩下异步通信功能。关于通信和串口的基本知识,可参见文章《串口通信简介-CSDN博客》和《数据通信的一些基础概念-CSDN博客》。

本文重点介绍如何使用STM32的UART外设(STM32 HAL库驱动)。本文内容来自文档《UM1725 User Manual Description of STM32F4xx HAL drivers 》。

一、使用步骤

1、声明一个 UART_HandleTypeDef 句柄结构;

2、初始化UART 底层资源,通过执行 HAL_UART_MspInit() 函数:

        a、使能 USARTx 接口时钟;

        b、UART 引脚配置:

                ——使能 UART GPIO 时钟;

                ——配置这些 UART 引脚为复用功能 pull-up;

        c、配置 NVIC,如果需要使用中断程序的话(使用 HAL_UART_Transmit_IT() 和 HAL_UART_Receive_IT()函数)

                ——配置 USARTx 的中断优先级;

                ——使能 NVIC USART IRQ handle;

        d、配置 DMA,如果需要使用 DMA 程序的话(使用 HAL_UART_Transmit_DMA() 和 HAL_UART_Receive_DMA()函数)

                ——声明 DMA句柄结构,为了 Tx/Rx 数据流;

                ——使能 DMA 接口时钟;

                ——配置已声明的 DMA句柄结构的需要的 Tx/Rx 参数;

                ——配置 DMA  Tx/Rx 数据流;

                ——将 DMA handle 和 UART DMA Tx/Rx handle 联合;

                ——配置优先级并且使能 NVIC 为了传输完成中断,在 DMA Tx/Rx 数据流中; 

3、在初始化结构体中编程波特率,字符长度,停止位,校验位,硬件控制流和收发模式;

4、为了使用 UART 异步模式,初始化 UART 寄存器,通过调用 HAL_UART_Init()函数;

5、为了使用半双工模式,初始化 UART 寄存器,通过调用 HAL_UART_Init()函数;

6、为了使用 LIN(局部互联网络)模式,初始化 UART 寄存器,通过调用 HAL_LIN_Init() 函数;

二、文档原文

               

             

http://www.lryc.cn/news/459153.html

相关文章:

  • 星巴克英语
  • 权重衰减与暂退法——paddle部分
  • golang获取当天最小的时间,以DateTime的string格式返回
  • 2025 - 中医学基础 - 考研 - 职称
  • Pandas库
  • Qt网络编程: 构建高效的HTTP文件下载器
  • Python 将Word, Excel, PDF和PPT文档转换为OFD格式
  • QD1-P21-P22 CSS 基础语法、注释、使用方法
  • 您是否也在寻找免费的 PDF 编辑器工具?10个备选PDF 编辑器工具
  • C++调试方法(Vscode)(一) ——本地调试
  • C语言 | Leetcode C语言题解之第460题LFU缓存
  • 【AI论文精读12】RAG论文综述2(微软亚研院 2409)P4-隐性事实查询L2
  • SpringBoot中间件Docker
  • 计算机毕设选题推荐【大数据专业】
  • Bootstrap 4 多媒体对象
  • Springmvc Thymeleaf 标签
  • 用java来编写web界面
  • 如何利用Fiddler进行抓包并自动化
  • 权重衰减与暂退法——pytorch与paddle实现模型正则化
  • MYSQL-windows安装配置两个或多个版本MYSQL
  • 6、Spring Boot 3.x集成RabbitMQ动态交换机、队列
  • 【分布式微服务云原生】 探索SOAP协议:简单对象访问协议的深度解析与实践
  • C语言题目练习2
  • 复变函数与积分变换——留数定理求拉氏逆变换
  • RabbitMQ事务模块
  • Android终端GB28181音视频实时回传设计探讨
  • AI金融攻防赛:金融场景凭证篡改检测(DataWhale组队学习)
  • 华为OD机试真题---喊7的次数重排
  • 使用阿里巴巴的图
  • 【hot100-java】排序链表