STM32学习-HAL库 串口通信

学完标准库之后,本来想学习freertos的,但是看了很多教程都是移植的HAL库程序,这里再学习一些HAL库的内容,有了基础这里直接学习主要的外设。

HAL库对于串口主要有两个结构体UART_InitTypeDef和UART_HandleTypeDef,前者对串口的通信参数配置,后者是对串口整体进行配置。

复制代码
typedef struct
{
 uint32_t BaudRate; /* 波特率 */
 uint32_t WordLength; /* 字长 */
 uint32_t StopBits; /* 停止位 */
 uint32_t Parity; /* 校验位 */
 uint32_t Mode; /* UART 模式 */
 uint32_t HwFlowCtl; /* 硬件流设置 */
 uint32_t OverSampling; /* 过采样设置 */
}UART_InitTypeDef;

typedef struct
{
 USART_TypeDef *Instance; /* UART 寄存器基地址 */
 UART_InitTypeDef Init; /* UART 通信参数 */
 uint8_t *pTxBuffPtr; /* 指向 UART 发送缓冲区 */
 uint16_t TxXferSize; /* UART 发送数据的大小 */
 __IO uint16_t TxXferCount; /* UART 发送数据的个数 */
 uint8_t *pRxBuffPtr; /* 指向 UART 接收缓冲区 */
 uint16_t RxXferSize; /* UART 接收数据大小 */
 __IO uint16_t RxXferCount; /* UART 接收数据的个数 */
 DMA_HandleTypeDef *hdmatx; /* UART 发送参数设置(DMA) */
 DMA_HandleTypeDef *hdmarx; /* UART 接收参数设置(DMA) */
 HAL_LockTypeDef Lock; /* 锁定对象 */
 __IO HAL_UART_StateTypeDef gState; /* UART 发送状态结构体 */
 __IO HAL_UART_StateTypeDef RxState; /* UART 接收状态结构体 */
 __IO uint32_t ErrorCode; /* UART 操作错误信息 */
}UART_HandleTypeDef; 

在CubeMX生成代码必须使用1.8.5的HAL库,和1.8.0有些出入,新定义了一些成员。在HAL_UART_Init()传入实例化的结构体就可完成串口的初始化。注意,这里仅仅是通信相关的配置,引脚的配置MX自动完成了,如果使用了中断,那么也自动设定。

串口的主要功能就是接收和发送。HAL_UART_Transmit和HAL_UART_Receive都是阻塞方式发送和接收,执行完之后就不再执行,还阻碍了其他代码的运行。一般使用中断方式进行收发,涉及的比较复杂,HAL_UART_Receive_IT()和HAL_UART_Transmit_IT(),这里给出接收的图解。

发送和接收类似,不再赘述

相关推荐
AOI小白新手上路1 小时前
江科协51单片机 7-2 LCD1602显示时钟实验
单片机·嵌入式硬件·51单片机
思麟呀1 小时前
嵌入式入门(一)宏观生态到首次烧录
c语言·嵌入式硬件
runningshark1 小时前
SC32L14GR8PJR
单片机·嵌入式硬件
智购科技无人售货机厂家2 小时前
2026自动售货机备用电池管理系统设计:从充放电保护到健康监测的工程实践~YH
大数据·linux·单片机·嵌入式硬件·微信
小雪崩2 小时前
嵌入式学习 day39:TCP并发服务器模型
linux·服务器·c语言·网络·学习·tcp/ip
智购无人售货机厂家2 小时前
2026自动售货机软硬件版本管理策略:从版本号规范到兼容性矩阵的工程实践~YH
运维·服务器·人工智能·单片机·嵌入式硬件·线性代数·矩阵
知识分享小能手2 小时前
深度学习学习教程,从入门到精通,概率与信息论 — 知识点详解(3)
人工智能·深度学习·学习·数据挖掘·概率论
Wendy不吃榴莲2 小时前
# AI短剧教程 - 《后西游记》开播后,AI影视为什么更考验“连续讲故事”?
人工智能·笔记·学习·ai·视频
花 满 楼2 小时前
RISC-V APLIC 中断模块总结——第二篇
单片机·嵌入式硬件·mcu·risc-v
Agudamu11612 小时前
B站学习视频怎么变笔记:用 Ai好记 + Obsidian 搭建个人知识库的完整教程
人工智能·笔记·学习·音视频