中断里不读DR,RXNE不清,系统卡死
短文标题中断里不读DRRXNE不清系统卡死你有没有想过一个问题USART接收中断配置好了一上电程序就卡死一直在中断里出不来。很可能你没读DR。RXNE标志置1后只有读DR才能清除。RXNE接收数据寄存器非空USART收到一个字节硬件把数据存入DR同时RXNE标志置1。如果RXNEIE使能触发中断。中断里必须读DR硬件才自动清除RXNE。void USART1_IRQHandler(void){if (USART1-SR USART_SR_RXNE) {uint8_t data USART1-DR; // 读DR硬件自动清RXNE// 处理数据...}}不读DRRXNE永远为1退出中断立即再进系统卡死。ORE溢出错误第二个陷阱上一字节还没读下一字节又收到了ORE标志置1。ORE置1后USART停止接收新数据直到软件清除。清除ORE的正确顺序先读SR再读DR。if (USART1-SR USART_SR_ORE) {volatile uint32_t tmp USART1-SR; // 读SRtmp USART1-DR; // 再读DR}顺序错了ORE清不掉。回环实验通过串口回环理解中断收发配置USART接收中断PC发送数据单片机在中断中接收将收到的数据立即发送回去回环void USART1_IRQHandler(void){if (USART1-SR USART_SR_RXNE) {uint8_t data USART1-DR;// 回环将收到的数据立即发送while (!(USART1-SR USART_SR_TXE));USART1-DR data;}}标志清除方式汇总这个故事的启示外设标志位是硬件给软件的“信号”不清理硬件就认为你还没忙完。收到信号中断回应信号读DR清标志。不回应硬件一直喊系统卡死。写在最后写USART接收中断记住三件事读DR清RXNE读SR再读DR清ORE不清楚清除方式查手册。不读DR中断不停。不清ORE接收卡死。本文灵感源于于振南《新概念ARM32单片机》教程第4.9节。觉得有用点赞、转发让更多人避开“不读DR”的坑。

相关新闻

Linux 命令与系统调用实战:内核这家“外包公司“是怎么接单的

Linux 命令与系统调用实战:内核这家“外包公司“是怎么接单的

Linux 命令与系统调用实战:内核这家"外包公司"是怎么接单的系列导言:如果把 Linux 内核想象成一家"软件外包公司",那么—— 用户态程序就是"甲方爸爸",只会提需求,自己啥活儿都干不了&a…

2026/10/15 17:34:48 阅读更多 →
破局 AI 应用黑盒:LangSmith 全链路调试+评估实战,从入门到企业级项目落地

破局 AI 应用黑盒:LangSmith 全链路调试+评估实战,从入门到企业级项目落地

一、引言:告别 AI 应用"盲盒式"开发,LangSmith 破局核心痛点在 LangChain 应用开发中,你是否经常遇到这样的情况:RAG 问答输出了错误答案却不知道是检索环节出了问题还是模型生成环节出了偏差?Agent 明明配置…

2026/10/15 14:48:07 阅读更多 →
7.1、传输层的可靠数据传输

7.1、传输层的可靠数据传输

7.1、传输层的可靠数据传输 在计算机网络中,传输层(Transport Layer)位于应用层和网络层之间,其主要职责之一是为上层应用提供可靠的数据传输服务。无论是浏览网页、发送邮件,还是在线视频通话,用户都期望…

2026/10/13 11:45:46 阅读更多 →

最新新闻

从半加器到超前进位:加法器设计原理与Verilog实现

从半加器到超前进位:加法器设计原理与Verilog实现

1. 从半加器到全加器:为什么需要两级结构 很多人学数字电路,学到加法器这一节就开始犯迷糊。教材上先讲半加器,再讲全加器,然后告诉你全加器可以由两个半加器加一个或门拼出来。但为什么要这么拼?直接用一个电路把三个…

2026/10/15 17:35:54 阅读更多 →
SamsaraJS 完全入门指南:快速构建硬件加速的连续动画用户界面

SamsaraJS 完全入门指南:快速构建硬件加速的连续动画用户界面

前端UI库/组件 【免费下载链接】samsara Continuous UI 项目地址: https://gitcode.com/gh_mirrors/sa/samsara 点击查看 免费下载 SamsaraJS 是一个专注于「连续 UI(Continuous UI)」的 JavaScript 动画库:它让页面上的多个视觉…

2026/10/15 17:35:54 阅读更多 →
oh-my-bash absimple 主题详解:基于 agnoster 的精简分段式 Bash 提示符

oh-my-bash absimple 主题详解:基于 agnoster 的精简分段式 Bash 提示符

开发工具CLI 【免费下载链接】oh-my-bash A delightful community-driven framework for managing your bash configuration, and an auto-update tool so that makes it easy to keep up with the latest updates from the community. 项目地址: https://gitcode.c…

2026/10/15 17:35:54 阅读更多 →
C# WinForms教务系统实战:学生信息、成绩与选课管理中的事务与并发避坑指南

C# WinForms教务系统实战:学生信息、成绩与选课管理中的事务与并发避坑指南

简介:这是一套面向高校计算机相关专业学生的C# Windows窗体教务管理系统完整源码,基于C#与SQL Server开发,适合作为课程大作业、毕业设计或自学练手项目。系统区分学生与管理员两类角色:管理员可维护管理员与学生信息、开设与查询…

2026/10/15 17:35:54 阅读更多 →
consola 版本演进指南:从 2.x 到 3.4 的核心特性、破坏性变更与源码实现解析

consola 版本演进指南:从 2.x 到 3.4 的核心特性、破坏性变更与源码实现解析

开发工具CLI 【免费下载链接】consola 🐨 Elegant Console Logger for Node.js and Browser 项目地址: https://gitcode.com/gh_mirrors/co/consola 点击查看 免费下载 consola 是一款面向 Node.js 与浏览器环境的优雅控制台日志库,其 CHAN…

2026/10/15 17:35:54 阅读更多 →
迪文串口TFT屏通用驱动程序:从协议解析到多屏适配

迪文串口TFT屏通用驱动程序:从协议解析到多屏适配

简介:这份资源是面向AVR平台开发者的迪文串口TFT屏通用驱动程序,用标准C语言编写,帮助嵌入式工程师在工业控制、智能家居、物联网等项目中快速集成迪文显示屏,无需深入硬件细节即可完成图形与文本显示。压缩包为rar格式&#xff0…

2026/10/15 17:34:53 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →