打印

HAL库串口源文件stm32h7xx_hal_uart.c学习笔记(2018-11-12 V1.0)

[复制链接]
361|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
社畜一枚|  楼主 | 2018-8-10 11:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
说明:
这里主要是异步方式串口。

==============================================================================
                                                                   ##### 如何使用此驱动  #####
==============================================================================
1、定义UART_HandleTypeDef类型串口结构体变量,比如UART_HandleTypeDef huart
2、使用函数HAL_UART_MspInit初始化串口底层。
(1)使能串口时钟
(2)引脚配置
        a、使能串口所使用的GPIO时钟
        b、配置GPIO的复用模式
(3)如果使用中断方式函数HAL_UART_Transmit_IT和HAL_UART_Receive_IT需要做如下配置
        a、配置串口中断优先级
        b、使能串口中断。
(4)串口中断的开关是通过函数__HAL_UART_ENABLE_IT() 和 __HAL_UART_DISABLE_IT()来实现,这两个函数被嵌套到串口的发送和接收函数中调用。
(5)如果使用中断方式函数HAL_UART_Transmit_DMA和HAL_UART_Receive_DMA需要做如下配置
        a、声明串口的发送和接收DMA结构体变量,注意发送和接收是独立的两个,如果都是用,那就都需要配置。
        b、使能DMA接口时钟
        c、配置串口的发送和接收DMA结构体变量
        d、配置DMA发送和接收通道
        e、关键DMA和串口的句柄
        f、配置发送DMA和接收DMA的传输完成中断和中断优先级。

3、配置串口结构体变量xxx的波特率,位长,停止位,奇偶校验位,流控制和发送接收模式

4、如果需要,可以编程高级特性,比如TX/RX交换引脚,自动波特率检测。在串口结构体变量xxx的结构体成员AdvancedInit来设置。

5、串口初始化调用的函数HAL_UART_Init初始化

6、串口半双工初始化调用的函数HAL_HalfDuplex_Init初始化后

7、串口LIN模式调用函数HAL_LIN_Init初始化

8、多处理器模式调用函数HAL_MultiProcessor_Init初始化

9、485驱动模式,调用函数HAL_RS485Ex_Init初始化

这几个函数都会调用HAL_UART_MspInit做底层的GPIO,时钟等初始化。


1、初始化函数
HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength);
HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod);
HAL_StatusTypeDef HAL_UART_DeInit (UART_HandleTypeDef *huart);
void HAL_UART_MspInit(UART_HandleTypeDef *huart);
void HAL_UART_MspDeInit(UART_HandleTypeDef *huart);

其中函数
HAL_UART_Init和HAL_UART_Init是较常用的。

初始化的基础特性:
(++) Baud Rate
(++) Word Length
(++) Stop Bit
(++) Parity
(++) Hardware flow control
(++) Receiver/transmitter modes
(++) Over Sampling Method
(++) One-Bit Sampling Method


初始化的高级特性:
(++) TX and/or RX pin level inversion
(++) data logical level inversion
(++) RX and TX pins swap
(++) RX overrun detection disabling
(++) DMA disabling on RX error
(++) MSB first on communication line
(++) auto Baud rate detection


支持的位格式:







QQ截图20181113230143.png (12.87 KB, 下载次数: 0)

下载附件



2018-11-13 23:01 上传

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

397

主题

401

帖子

0

粉丝