STM32中启用 UART 的特定中断( __HAL_UART_ENABLE_IT函数)开机立即进入中断问题(HAL库)

news2024/10/10 10:31:11

学习过程中发现启用 UART 的特定中断功能之后,原本应该是等到空闲中断的标志位变化了再进入中断,结果MCU开机就会进入中断,不符合逻辑,所以尝试解决这个问题。

DMA+空闲中断 处理 串口接收不定长数据 的文章见以下
原文链接:https://blog.csdn.net/weixin_51593470/article/details/130886157

但这种方式存在一些bug,上电就会进入中断
初始化:
在这里插入图片描述
stm32g4xx_it.c:
在这里插入图片描述
所以我尝试写标志位,让第一次进入无效。具体如下
初始化:
在这里插入图片描述

stm32g4xx_it.c:
在这里插入图片描述
结果还是没能解决,还是会上电就输出hello,所以我猜测,上电肯定不止一次的记入这个中断。

终于在我不断尝试跟查阅资料的努力下
初始化:
在这里插入图片描述
stm32g4xx_it.c:
在这里插入图片描述
具体做法:清除了标志位,但需要先延迟1s,如果不延迟1s也是没有用的!

这样子,上电就不会进入中断,输出hello了!

在一些嵌入式系统中,特别是在启动过程中,各种外设和系统模块可能需要一些时间来初始化和稳定。这个稳定的时间可能与硬件设计、外设配置、时钟设置等因素有关。延迟一段时间可以确保系统已经完全初始化并进入稳定状态,这样在启用 UART 空闲中断之前,就可以避免因为系统处于不稳定状态而触发意外的中断。刚刚那个flag的例子就很好的说明了,有很多种情况在不稳定的时候进了中断。所以需要延迟!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1568064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

把标注数据导入到知识图谱

文章目录 简介数据导入Doccano标注数据,导入到Neo4j寻求帮助 简介 团队成员使用 Doccano 标注了一些数据,包括 命名实体识别、关系和文本分类 的标注的数据; 工作步骤如下: 首先将标注数据导入到Doccano,查看一下标注…

LeetCode每日一题之专题一:双指针 ——复写零

复写零OJ链接:1089. 复写零 - 力扣(LeetCode) 题目: 解法(原地复写-双指针): 算法思路: 如果「从前向后」进⾏原地复写操作的话,由于 0 的出现会复写两次,导致…

鸿蒙开发之ArkTs开发布局之层叠布局(Stack)和弹性布局(Flex)

层叠布局(Stack) 层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。层叠布局通过Stack容器组件实现位置的固定定位与层叠,容器中的子元素(子组件&…

技术揭秘:如何打造完美互动的充电桩硬件与服务平台?

充电桩平台全套源码地址 https://gitee.com/chouleng/cdzkjjh.git 这张图像是一个系统或服务的架构图。以下是对图中各个部分的描述: 前端: 位于图像的顶部,颜色为浅绿色。用户服务端: 紧邻前端,颜色为淡黄色。设备服…

【初阶数据结构】——leetcode:160. 相交链表

文章目录 1. 题目介绍2. 思路1:暴力求解算法思想代码实现 3. 思路2:快慢指针算法思想代码实现 1. 题目介绍 链接: link 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&…

OpenAI劲敌出手!Claude 3正式发布,全面超越GPT-4。Claude3模型特点和使用教程分享

已有GPT官方账号不会升级GPT4请参考:【国内如何用gpt4?如何升级gpt4?保姆级教程】 一、Claude震撼发布焦点分析 1.Claude震撼发布 北京时间2024年3月4日晚间,Anthropic,毫无预警地发布了最新一代大模型Claude 3&…

RuoYi-Vue若依框架-集成mybatis-plus报错Unknown column ‘search_value‘ in ‘field list‘

报错信息 ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column search_value in field list ### The error may exist in com/ruoyi/sales/mapper/ZcSpecificationsMapper.java (best guess) ### The error may involve defaultParameter…

32-2 APP渗透 - 移动APP架构

前言 app渗透和web渗透最大的区别就是抓包不一样 一、客户端: 反编译: 静态分析的基础手段,将可执行文件转换回高级编程语言源代码的过程。可用于了解应用的内部实现细节,进行漏洞挖掘和算法分析等。调试: 排查软件错误的一种手段,用于分析应用内部原理和行为。篡改/重打…

【python实战】--提取所有目录下所有Excel文件指定列数据

系列文章目录 文章目录 系列文章目录前言一、问题描述二、python代码1.引入库 总结 前言 一、问题描述 需要提取指定路径下所有excel文件中指定一列数据,汇总到新文件,(逐列汇总) 二、python代码 1.引入库 代码如下&#xff08…

66toolkit终极网络工具系统:470+强大Web工具,助力您的网络运营与开发

一、产品介绍 66toolkit,被誉为“终极网络工具系统”(SAAS),是一款功能强大的PHP脚本。它集合了超过470种快速且易用的Web工具,为日常任务处理和开发人员提供了极大的便利。作为一款综合性的网络工具系统,…

【吊打面试官系列】Redis篇 -如果有大量的 key 需要设置同一时间过期,一般需要注意什么?

大家好,我是锋哥。今天分享关于 【如果有大量的 key 需要设置同一时间过期,一般需要注意什么?】面试题,希望对大家有帮助; 如果有大量的 key 需要设置同一时间过期,一般需要注意什么? 如果大量的…

ContEA论文翻译

Facing Changes: Continual Entity Alignment for Growing Knowledge Graphs 面对变化:不断增长的知识图谱的持续实体对齐 Abstract 实体对齐是知识图谱(KG)集成中一项基本且重要的技术。多年来,实体对齐的研究一直基于知识图谱是静态的假设&#xff…

基于Spring Boot的餐厅点餐系统

基于Spring Boot的餐厅点餐系统 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 部分系统展示 管理员登录界面 用户注册登录界面 …

阿里云服务器安装Java开发环境最佳实践

服务器环境安装 环境依赖服务器配置配置SSH登录打开安全配置端口远程连接配置秘钥 Linux服务器常用指令向远程服务器传送文件systemctl 相关 安装MySql安装步骤step1 检查并清除以前的mysql相关文件step2 安装step3 MySQL参数配置step4 设置开机启动step5 初始化数据库step6配置…

DDD 的四层领域模型是怎样的?包含哪些基础概念?

DDD的四层领域模型如下所示: 展现层:这一层负责向用户显示信息和解释用户命令,完成前端界面逻辑。并将用户请求传递给应用层。应用层:这一层是很薄的一层,负责协调领域层中的领域对象,组成具体应用场景。应…

工厂制造细节无需知--工厂方法模式

1.1 需要了解工厂制造细节吗? "简单工厂只是最基本的创建实例相关的设计模式。但真实情况中,有更多复杂的情况需要处理。简单工厂生成实例的类,知道了太多的细节,这就导致这个类很容易出现难维护、灵活性差问题,…

python--IO流和字符流的写入写出

1.IO流:(input output stream) python的IO流只有一个函数:open函数 属性不用带括号;方法通通要带括号 输入输出流:狭义上来说,指的就是内存数据和磁盘这种可以永久 存储数据的设备 IO流 IO流…

LongAdder 和 Striped64 基础学习

cs,表示 Cell 数组的引用;b,表示获取的 base 值,类似于 AtomicLong 中全局变量的 value 值,在没有竞争的情况下数据直接累加到 base 上,或者扩容时,也需要将数据写入到 base 上;v&am…

计算机考研408有向无环图描述表达式可靠构造方法

目录 前言目标(以王道书为例)构造方法1. 建树2. 后序遍历1. a2. b3. 4. b5. c6. d7. 8. *9. *10. c 前言 对王道视频中的分层合并思想不是很满意,笔者提出自己的构造方法。 目标(以王道书为例) 构造方法 笔者通过王…

GitGithub小册:版本管理必备利器

在 GitHub上创建仓库 这一步骤的前提是先注册一个 GitHub的账号,由于那都是小场面,就不再巴拉巴拉。 说明一下,全文如果没有特别的单独说明,文中所有用【】括起来的内容都代表网页或者软件节点的操作按钮或者步骤选择项。 打开 Gi…