博客
关于我
【STM32H7教程】第29章 STM32H7的USART串口基础知识和HAL库API
阅读量:510 次
发布时间:2019-03-07

本文共 2243 字,大约阅读时间需要 7 分钟。

STM32H7系列USART串口基础知识与HAL库API教程

##目录

  • 29.1 初学者重要提示
  • 29.2 串口基础知识
    • 29.2.1 串口硬件框图
    • 29.2.2 串口基本功能
    • 29.2.3 串口高级特性
    • 29.2.4 自适应波特率
    • 29.2.5 数据帧格式
    • 29.2.6 发送时序图
    • 29.2.7 同步串口与异步串口
    • 29.2.8 单工、半双工、全双工通讯
  • 29.3 串口的HAL库用法
    • 29.3.1 串口寄存器结构体
    • 29.3.2 串口句柄结构体
    • 29.3.3 串口底层配置
    • 29.3.4 串口状态标志清除问题
    • 29.3.5 串口初始化流程总结
  • 29.4 源文件stm32h7xx_hal_uart.c
    • 29.4.1 函数HAL_UART_Init
    • 29.4.2 函数HAL_UART_Transmit
    • 29.4.3 函数HAL_UART_Receive
    • 29.4.4 函数HAL_UART_Transmit_IT
    • 29.4.5 函数HAL_UART_Receive_IT
    • 29.4.6 函数HAL_UART_Transmit_DMA
    • 29.4.7 函数HAL_UART_Receive_DMA

##29.1 初学者重要提示

  • 从硬件框图开始了解串口基本功能。
  • 强调串口的异步通信特性。
  • 注意串口中断标志清除问题。
  • 了解串口高级特性,如超时接收检测和自适应波特率。
  • ##29.2 串口基础知识###29.2.1 串口硬件框图串口硬件框图展示了以下关键部分:

    • 中断接口:用于实现中断方式的串口唤醒和数据传输中断。
    • DMA接口:用于实现串口发送和接收的DMA方式。
    • 串口控制器:包含串口相关寄存器。
    • FIFO缓冲器:支持硬件FIFO功能。
    • TX和RX引脚互换功能:支持引脚电平翻转和互换。
    • 时钟:包括usart_pclkusart_ker_ck

    ###29.2.2 串口基本功能STM32H7系列支持以下串口基本功能:

    • 任意波特率:最高可达4.5Mbps。
    • 可编程数据字长度:支持7位、8位和9位。
    • 可配置停止位:支持1位或2位。
    • 数据传输检测:支持接收缓冲区满、发送空和传输结束标志。
    • 高级中断特性:支持CTS检测、LIN断开符检测等。

    ###29.2.3 串口高级特性相比F1和F4系列,STM32H7系列串口支持以下高级特性:

    • 数据逻辑电平翻转。
    • RX和TX引脚电平翻转。
    • 超时接收检测。
    • MSB优先发送。
    • 自适应波特率。
    • 外接RS-485切换功能。

    ###29.2.4 自适应波特率

    • 应用场合:适用于通信速度未知或时钟精度较低的情况。
    • 测量范围:基于usart_ker_ck_pres时钟源。
    • 测量方法:支持四种自适应模式,适用于不同通信需求。

    ###29.2.5 数据帧格式串口数据帧格式由MPCE位决定:

    • M位:控制帧长度(7位、8位或9位)。
    • PCE位:使能奇偶校验位。

    ###29.2.6 发送时序图时序图展示了串口发送过程中的关键事件:

    • TXE空中断:发送数据寄存器空。
    • TC中断:发送完成。

    ###29.2.7 同步串口与异步串口

    • 异步串口:按字符传输,起始位同步。
    • 同步串口:基于外部时钟同步,适合高速和大容量数据传输。

    ###29.2.8 单工、半双工、全双工通讯

    • 单工:单向通信,需两根线。
    • 半双工:双向通信,需两根线。
    • 全双工:双向通信,需三根线。

    ##29.3 串口的HAL库用法###29.3.1 串口寄存器结构体USART_TypeDef结构体定义了串口寄存器的基本功能。

    ###29.3.2 串口句柄结构体UART_HandleTypeDef结构体封装了串口的初始化参数和操作接口。

    ###29.3.3 串口底层配置串口配置包括:

    • 使能串口时钟。
    • 配置GPIO引脚。
    • 配置NVIC中断优先级。
    • 初始化DMA接口。

    ###29.3.4 串口状态标志清除问题通过__HAL_USART_GET_FLAG__HAL_USART_CLEAR_FLAG函数管理中断标志。

    ###29.3.5 串口初始化流程总结

  • 初始化串口底层(GPIO、时钟、中断)。
  • 配置串口参数(波特率、停止位、奇偶校验)。
  • 配置高级特性(如电平翻转、引脚互换)。
  • 调用HAL_UART_Init初始化串口。
  • ##29.4 源文件stm32h7xx_hal_uart.c###29.4.1 函数HAL_UART_Init初始化串口的基础和高级特性。

    ###29.4.2 函数HAL_UART_Transmit以查询方式发送数据,支持中断驱动。

    ###29.4.3 函数HAL_UART_Receive以查询方式接收数据,支持中断驱动。

    ###29.4.4 函数HAL_UART_Transmit_IT通过中断方式发送数据,支持FIFO和传空中断。

    ###29.4.5 函数HAL_UART_Receive_IT通过中断方式接收数据,支持FIFO和校验中断。

    ###29.4.6 函数HAL_UART_Transmit_DMA通过DMA方式发送数据,支持中断驱动。

    ###29.4.7 函数HAL_UART_Receive_DMA通过DMA方式接收数据,支持中断驱动。

    ##29.5 总结本章详细介绍了STM32H7系列USART串口的基础知识和HAL库API,涵盖了串口硬件框图、基本功能、高级特性以及HAL库的使用方法。通过本章内容,读者可以掌握串口通信的核心知识和实际应用技能。

    转载地址:http://gunjz.baihongyu.com/

    你可能感兴趣的文章
    mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
    查看>>
    mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
    查看>>
    mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
    查看>>
    mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
    查看>>
    mui折叠面板点击事件跳转
    查看>>
    MySQL 8 公用表表达式(CTE)—— WITH关键字深入用法
    查看>>
    mysql 8 远程方位_mysql 8 远程连接注意事项
    查看>>
    MUI框架里的ajax的三种方法
    查看>>
    MySQL 8.0 恢复孤立文件每表ibd文件
    查看>>
    Mysql 8.0 新特性
    查看>>
    MultCloud – 支持数据互传的网盘管理
    查看>>
    MySQL 8.0.23中复制架构从节点自动故障转移
    查看>>
    MySQL 8.0开始Group by不再排序
    查看>>
    mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
    查看>>
    multi swiper bug solution
    查看>>
    MySQL Binlog 日志监听与 Spring 集成实战
    查看>>
    MySQL binlog三种模式
    查看>>
    multi-angle cosine and sines
    查看>>
    Mysql Can't connect to MySQL server
    查看>>
    mysql case when 乱码_Mysql CASE WHEN 用法
    查看>>