当前位置: 首页 > news >正文

嵌入式实验3串口通信--任务三串口中断

1.STM32CubeMX配置
STM32配置可见上文,本文不再配置。
2.编写STM32F1xx HAL库配置文件(stm32f1xx_hal_conf.h)

屏幕截图 2025-10-20 181545
3.编写中断头文件(stm32f1xx_it.h)

屏幕截图 2025-10-20 181650
4.编写中断服务函数(stm32f1xx_it.c)

屏幕截图 2025-10-20 181751
5.编写头文件(main.h)

屏幕截图 2025-10-20 181837
6.编写主函数(main.c)

屏幕截图 2025-10-20 181931
7.编译并运行,测试运行结果
编译成功:

屏幕截图 2025-10-20 182009
8.上板测试验证
测试成功:

屏幕截图 2025-10-20 182115
详细说明
1. 中断方式 vs HAL回调方式

之前的HAL回调方式:

使用HAL_UART_Receive_IT()启动接收
在HAL_UART_RxCpltCallback()回调函数中处理数据
HAL库自动管理中断使能和标志清除

当前的中断方式:

直接操作寄存器使能USART接收中断
在USART1_IRQHandler()中手动处理中断
手动读取数据寄存器和清除中断标志

2. 中断处理流程

  1. 中断使能:
    __HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE);
    
  2. 中断服务函数:
    检查RXNE(接收寄存器非空)标志
    读取数据寄存器(DR)获取接收到的字节
    清除中断标志
    设置接收完成标志供主循环处理
  3. 主循环处理:
    检查uart_rx_flag标志
    处理接收到的数据
    根据字符控制发送状态

关键代码解析
中断使能

__HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE);

这行代码使能USART1的RXNE(接收寄存器非空)中断,当接收到数据时会触发中断。

中断服务函数

void USART1_IRQHandler(void)
{
if(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXNE) != RESET)
{
__HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
uart_rx_buffer = (uint8_t)(huart1.Instance->DR & 0xFF);
uart_rx_flag = 1;
}
}

UART_FLAG_RXNE:接收寄存器非空标志
读取DR寄存器会自动清除RXNE标志
设置标志位通知主循环有新数据需要处理

硬件连接

STM32F103C8T6 ↔ USB转串口模块
PA9 (USART1_TX) → RXD of USB-to-Serial
PA10 (USART1_RX) → TXD of USB-to-Serial
GND → GND

串口助手设置

在Windows 11的串口助手中需要设置:

波特率: 115200
数据位: 8位
停止位: 1位
校验位: 无
流控制: 无
功能特点

  1. 实时响应:中断方式确保及时响应上位机命令
  2. 高效处理:中断服务函数尽量简短,只做必要的标志设置
  3. 主从分离:数据处理在主循环中完成,不阻塞中断
  4. 错误处理:包含溢出错误处理,提高稳定性
http://www.zskr.cn/news/25507.html

相关文章:

  • 文章测试
  • TCP协议(从HTTP3.0开始,切换为UDP)就是HTTP 是 超文本传输协议的缩写HTTP1.1是互联网主流版本HTTP在传输层主要依赖的
  • 设计极致高效的文件分享系统:哈希算法的艺术与科学
  • springboot多功能智能手机阅读APP设计与实现(代码+数据库+LW) - 实践
  • selnium 之实际案例
  • 计算机毕业设计Hadoop+Spatk+Hive滴滴出行分析 出租车供需平衡优化系统 出租车分析预测 大素材毕业设计(源码+LW+PPT+讲解)
  • 2025年防撞板品牌排名前十权威推荐:行业趋势与选择指南
  • 2025年票务系统厂家权威推荐榜:景区售票/闸机/验票系统,智慧文旅平台与票务管理软件全景解析
  • 2025年智能吉他厂家权威推荐榜:无弦吉他/自动档吉他/伴奏吉他/MIDI吉他,创新科技与演奏体验完美融合
  • VS 查找对话框 怎么搜索通配符
  • MATLAB实现对角加载波束形成算法
  • 2025 年压缩机源头厂家最新推荐榜单:覆盖石油化工燃气多领域,精选优质企业解决采购难题
  • Reborn
  • 2025年电源适配器厂家推荐排行榜:笔记本电源适配器,手机电源适配器,工业电源适配器,充电器电源适配器公司推荐
  • 10月20号
  • 小程序-视频号显示
  • c# 获取cpu温度
  • 基于结构稀疏的SAR图像低秩重建
  • 2025年焊接设备厂家权威推荐榜:铣边机、铣床、刨边机、滚轮架、变位机全系列专业解析与选购指南
  • 计算机思维的数与位
  • 如何安装fluentd 和fluentd-mongo的插件?然后收集nginx的 json格式的数据写到mongodb
  • 详细介绍:EfficientNet:复合缩放
  • 2025年深圳网站建设/外贸独立站推广/阿里巴巴代运营/1688店铺代运营/短视频运营推广/微信小程序开发服务商权威推荐榜
  • 计算机毕业设计Hadoop+Spatk+Hive滴滴出行分析 出租车供需平衡优化系统 出租车分析预测 大资料毕业设计(源码+LW+PPT+讲解)
  • 2025 彩石瓦厂家最新推荐排行榜:权威解析金属瓦 / 屋顶瓦优质厂商,金属/屋顶/凉亭/昆明/云南彩石瓦厂家推荐
  • 2025年扒胎机厂家推荐排行榜,液压无损扒胎机,全自动扒胎机,汽保扒胎机,轮胎扒胎机,汽车扒胎机,大轮胎扒胎机,无损扒胎机,辽南扒胎机,小车扒胎机,立式扒胎机公司推荐
  • springboot集成echarts显示图表
  • Ubuntu材料权限管理指南
  • 版本号搞得鬼!Winsows VSCode 和 Trae 的 Terminal 不识别 conda 环境
  • 2025年氧化镁厂家最新权威推荐榜:活性氧化镁,肥料级氧化镁,高纯度氧化镁源头厂家深度解析及选购指南