【STM32】HAL库——串口中断通信(二)

本文详细介绍了使用STM32CubeMX配置STM32F103RCT6开发板的串口中断,包括时钟、USART、IO口的设置,并在MDK5中使用HAL库进行串口发送和接收。通过实例展示了如何重定向printf函数以及实现串口接收中断回调函数,用于处理接收到的数据并控制GPIO翻转。此外,还提供了防止接收缓冲溢出的处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于调试过程中发现Proteus 8有些许bug,串口中断采用STM32F103RCT6开发板进行讲解

前期准备:

  1. STM32CubeMX
  2. STM32F103RCT6开发板
  3. IDE Keil(MDK-ARM)

STM32CubeMX部分


1. 配置时钟

选择STM32F103RCTx系列芯片,配置时钟的同时会自动配置IO口引脚
在这里插入图片描述

将HCLK设置为最大频率72MHz
在这里插入图片描述

2.配置USART

在这里插入图片描述
选择:
USART1串口1
Baud Rate(波特率):115200 Bits/s
Work Length(传输数据长度): 8 Bit
Parity(奇偶校验位) : 无
STOP Bits(停止位) :1
Data Direction(数据方向) : 发送和接收都使能

设置完之后就会自动配置USART1_RXUSART1_TX两个引脚

接着在NVIC Settings一栏设置使能全局中断
在这里插入图片描述

3.配置IO口

将PC4,PC5,PB0,PB1设置为:
高电平
Output模式
既不上拉也不下拉
响应速度高

3. 工程生成

在这里插入图片描述

在这里插入图片描述
工程管理依旧是这几个选项,然后GENERATE CODE,STM32CubeMX部分完成。



MDK 5部分

· HAL_UART_Transmit();串口发送数据,使用超时管理机制 
· HAL_UART_Receive();串口接收数据,使用超时管理机制
· HAL_UART_Transmit_IT();串口中断模式发送  
· HAL_UART_Receive_IT();串口中断模式接收
· HAL_UART_Transmit_DMA();串口DMA模式发送
· HAL_UART_Transmit_DMA();串口DMA模式接收
· HAL_UART_IRQHandler(UART_HandleTypeDef *huart);  //串口中断处理函数
· HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);  //串口发送中断回调函数
· HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart);  //串口发送一半中断回调函数(用的较少)
· HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);  //串口接收中断回调函数
· HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart);//串口接收一半回调函数(用的较少)
· HAL_UART_ErrorCallback(
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值