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

STM32-串口使用注意事项

1.溢出错误(过载错误,ORE错误)

1.1什么是溢出错误(摘引自ST官方参考手册)

如果RXNE还没有被复位,又接收到一个字符,则发生溢出错误。数据只有当RXNE位被清零后
才能从移位寄存器转移到RDR寄存器。RXNE标记是接收到每个字节后被置位的。如果下一个
数据已被收到或先前DMA请求还没被服务时,RXNE标志仍是置起的,溢出错误产生。
由上看出,当接收到一个字节的数据完成时,因为某种原因,未及时读取数据,串口再接收到数据时,ORE位会置位。
1.2需要注意的事项
当开启接收中断后,即使没有开启过载错误中断,该中断使能依旧被打开,因此一旦因为某种原因发生过载错误中断,在中断服务中也没有处理该中断时,将会因此中断标志位始终挂起,重复进中断,导致程序运行异常。
因此在开启接收中断时,必须在中断中判断是否发生过载错误中断,如果发生,中断退出时必须清除该中断标志位。STM32官方提供的固件库中不能使用“USART_GetITStatus”这个函数读取过载错误标志位,这个函数读取中断标志位的前提条件是对应的中断必须打开,如果读取的中断允许位没有置位,则返回RESET。针对过载错误中断,很容易因为只开了接收中断而导致读取过载错误中断标志位返回错误状态。可以直接访问寄存器或使用“USART_GetFlagStatus”函数读取。清除过载错误中断标志位,是软件序列,先读SR寄存器,再读DR寄存器。
http://www.jsqmd.com/news/500049/

相关文章:

  • Kubernetes 认证通关指南:CKA/CKS/CKAD 最新题库 + 本地仿真环境 + 模拟考
  • 2.postman断言
  • 具身智能中 Wrapper 架构的深度解构与 Python 实战
  • 深度解析 | 2026新范式:当“Token”取代比特币,成为真正的数字石油
  • 李南左日更3327:为什么员工都在摸鱼?是因为你曾经不信任他们
  • 终极Git与GitHub教程:从零开始掌握版本控制的完整指南
  • 【Xilinx Vivado时序分析/约束系列3】FPGA开发时序分析/约束-保持时间
  • 2026年靠谱的孝感钻井厂家推荐:十堰钻井/养殖场钻井公司精选 - 品牌宣传支持者
  • # 发散创新:用Go语言高效接入InfluxDB实现时序数据采集与可视化在现代微服务架构中,**时序数据
  • 【Xilinx Vivado时序分析/约束系列4】FPGA开发时序分析/约束-实验工程上手实操
  • 终极指南:如何快速掌握JEnv进行Java环境管理
  • reCAPTCHA PHP错误代码完全解析:快速定位和解决验证问题
  • 关于旧系统+旧安卓版本realme手机的原生文件管理不支持向微信好友一次性发送多个非照片格式文件的问题和解决方案
  • 探索阿里云盘: odomu/aliyunpan - 更智能、更便捷的云存储助手
  • 小程序实现“一码通用”
  • 7分钟掌握RuboCop:Ruby代码质量终极守护者指南
  • Python WebSockets 终极指南:构建高性能实时双向通信应用 [特殊字符]
  • 【Xilinx Vivado时序分析/约束系列5】FPGA开发时序分析/约束-IO时序分析
  • Nano Node选举机制深度分析:为什么它能实现零费用交易
  • Apache NuttX文件系统实战:FAT、ROMFS、NFS等12种文件系统详解
  • Docker学习(一) -- 理论及Linux安装、windows安装
  • 如何用GPT-Prompt-Engineer打造高效AI对话助手:新手必备的终极指南
  • Apache NuttX实战案例:构建智能家居控制系统的完整流程
  • Docker学习(三) -- 镜像、目录挂载(卷映射)、配置映射
  • 视频分析神器Video-Analyzer:基于LLaMA视觉模型和Whisper的完整视频内容分析指南
  • 5分钟快速上手Spec Workflow MCP:零基础配置结构化开发工作流
  • Jetpack Compose性能优化指南:避免重组与提升UI渲染效率的终极方法
  • Gatsby Starter Blog部署终极指南:Netlify、Vercel、GitHub Pages全面对比
  • yi-hack-v3固件FAQ:新手必知的10个常见问题与解决方案
  • Spring Cloud Kubernetes 健康检查与监控:构建可观测云原生应用的完整方案