STM32串口配置

1、串口配置步骤

  1. 串口参数初始化(波特率、字长、奇偶校验等)

HAL库通过调用串口初始化函数 HAL_UART_Init 完成对串口参数初始化,详见例程源码。
注意 :该函数会调用:HAL_UART_MspInit 函数来完成对串口底层的初始化,包括:串口及 GPIO 时钟使能、 GPIO 模式设置、中断设置等。

2)使能串口和 GPIO 口时钟

本实验用到 USART1 串口,使用 PA9 和 PA10 作为串口的 TX 和 RX 脚,因此需要先使能USART1 和 GPIOA 时钟。参考代码如下:

__HAL_RCC_USART1_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();

3) GPIO 模式设置(速度,上下拉,复用功能等)

GPIO 模式设置通过调用 HAL_GPIO_Init 函数实现,详见本例程源码。

4)开启串口相关中断,配置串口中断优先级

使用 HAL _UART_Receive_IT 函数开启串口中断接收,并设置接收 buffer 及其长度。通过 HAL_NVIC_EnableIRQ 函数使能串口中断,通过HAL_NVIC_SetPriority 函数设置中断优先级。5)编写中断服务函数

串口 1 中断服务函数为: USART1_IRQHandler ,当发生中断的时候,程序就会执行中断服务函数。 HAL 库为了使用方便,提供了一个串口中断通用处理函数 HAL_UART_IRQHandler ,该函数在串口接收完数据后,又会调用回调函数 HAL_UART_RxCpltCallback ,用于给用户处理串口接收到的数据。
需要在 HAL_UART_RxCpltCallback 函数实现数据接收处理

6)串口数据接收和发送

最后我们可以通过读写 USART_DR 寄存器,完成串口数据的接收和发送, HAL 库也给我们提供了: HAL_UART_Receive 和 HAL_UART_Transmit 两个函数用于串口数据的接收和发送

大家可以根据实际情况选择使用那种方式来收发串口数据。

注意:串口接受buffer接受到一个字节触发中断

复制代码
硬件中断
    ↓
USARTx_IRQHandler()
    ↓
HAL_UART_IRQHandler(&huart1)
    ↓
huart->RxISR(huart) -> HAL_UART_RxCpltCallback(huart)

由于一开始通过HAL_UART_Receive_IT 开启接收中断,该函数内部将huart->RxISR函数指针指向HAL_UART_RxCpltCallback。

在实际中可以重写 HAL_UART_IRQHandler 完成串口接收,可以将HAL_UART_IRQHandler 与HAL_UART_RxCpltCallback 写成一个函数。

串口中断类型:STM32的串口(USART)常见的中断类型及其功能

串口详细介绍:https://www.cnblogs.com/artlessist/p/18926038

空闲中断:从最后一个字节的停止位 开始计时,如果线路保持高电平(空闲状态)达到1个完整字节的传输时间,则触发空闲中断(用于检测数据帧的结束,常用于接收不定长数据。)

相关推荐
智购科技无人售货机厂家37 分钟前
自动售货机物联网平台为什么会出现在线状态不一致?~YH
python·单片机·嵌入式硬件·django·pygame
zhangrelay9 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
comyccccc10 小时前
STM32F103C8T6最小系统板设计全解析学习笔记
单片机·1024程序员节
Industio_触觉智能10 小时前
把NPU检测直接嵌进采集终端|RK3576 AI采集终端全链路拆解教程-下
嵌入式硬件·ai·硬件架构·npu·ai视觉·rk3576·采集终端
en.en..11 小时前
STM32 GPIO ODR 与 BSRR 寄存器完整对比详解
单片机·嵌入式硬件
HQB202613 小时前
EG1182|屹晶微电子 60V 内置高压管异步降压 DC‑DC
嵌入式硬件·硬件工程
LCG米15 小时前
STM32硬件SPI驱动SSD1306 OLED实测:上电黑屏排查、页寻址模式与取模扫描方向陷阱
stm32·单片机·嵌入式硬件·嵌入式
深圳老胡16 小时前
STM32C5A3ZG 网络调试总结:从启动失败到连续 Ping 稳定
笔记·stm32·单片机·代码规范
qq_4017004116 小时前
100 个 IoT 小项目,给 ESP32 入门补上实操
前端·网络·stm32
硅基造物主16 小时前
STM32 从 0 到 1 做智能家居(八):PWM 控制风扇、加热片与 SG90 窗帘
stm32·嵌入式硬件·智能家居·hal库·pwm