STM32F4 程序运行一段时间后死掉 但中断正常响应(串口一直进中断导致程序被卡死)

STM32“死机“(实用调试技巧) STM32"死机"(实用调试技巧) 阅读详情

问题描述

控制系统使用的是STM32F4+UCOSII 抢占型内核,最近一段时间出现了程序跑一段时间之后操作系统直接死掉的问题,表现为:操作系统中设有优先级很低的呼吸灯任务,只要操作系统在正常工作,呼吸灯就会不停的跳动,但是当出现问题时,呼吸灯停止跳动,控制底盘运动的任务也死掉,底盘处于失控状态,LCD所在的任务也死掉,不再进行刷新,推测为所有的操作系统的任务均死掉,不能正常工作,但是中断仍然可以响应,写在定时器中断中的急停操作是可以执行的。

问题分析

  • 怀疑是进入了一些错误中断

  • 怀疑是指针或者堆栈出了问题

  • 怀疑最高优先级的任务中存在死循环

  • 怀疑操作系统中存在一些bug

  • 怀疑是中断引起的程序一直在中断中,不能进入正常任务
    解决方案

  • 对错误中断进行排查分析,程序中开启的错误中断响应只有HardFault,在进入HardFault的中断服务函数后会进行相应的处理

      /* *
         * @brief  This function handles Hard Fault exception.
         * @param  None
         * @retval None
         */
     void HardFault_Handler(void)
     {
           /* Go to infinite loop when Hard Fault exception occurs */
            while (1)
            {
                     BEEP_TOGGLE;
                     Delay_ms(500);
            }
     }
    

因此,从表现上看基本可以排除进入Hard Fault的可能,除此之外,Hard Fault的中断优先

STM32串口中断ORE问题记录 首先感谢“今天也迟到”提供的思路,原文博客如下: https://blog.csdn.net/qq_34401994/article/details/76359581 背景:STM32F030芯片,485串口使用MDA+中断方式收发数据。 问题:串口在收发数据过程中,偶发性的收不到数据,且无法自恢复,必须重启MCU。 问题分析: 在调试过程中发现,未能正确接收数据的状态下,DMA_GetCurrD... 阅读详情

相关推荐

STM32F030低温下RTC不工作

客户反馈在批量生产阶段,发现部分产品的MCU的RTC在低温(0℃)下工作不正常,但是在常温下又是正常的,且其他正常的MCU的RTC在常温与低温下都是正常的。

放飞梦想,成就未来 9516

STM32 UART5中断接收PC端TAG信号:从卡死到稳定收发的调试实战

本文分享了STM32 UART5中断接收PC端TAG信号的调试实战经验。从接收卡死问题入手,通过排查硬件连接、引脚配置和软件参数,最终发现并修复了中断向量表缺失问题。深入解析HAL库中断机制,解决了数据接收不完整问题,并提供了稳定性优化实践,包括错误处理和DMA应用。

i7j8k9l的博客 686

GD32F4串口DMA接收中断问题排查:从寄存器变化到解决方案

本文详细记录了GD32F4系列MCU在串口DMA接收中断中遇到的“首次正常,后续失灵”问题的排查全过程。通过对比分析关键寄存器(如DMA_INTF)在正常与异常状态下的变化,定位到DMA传输完成中断标志未清除是导致后续接收失败的根源。文章提供了清晰的解决方案和修改后的代码示例,强调在中断服务程序中必须手动清除DMA的FTF(全传输完成)标志,并分享了基于寄存器观察的通用调试方法论。

weixin_29172201的博客 147

STM32F4 DMA串口发送原理与实战配置

DMA(直接内存访问)是一种硬件加速数据搬运技术,通过绕过CPU实现存储器与外设间的高效传输,显著提升嵌入式系统实时性与资源利用率。其核心原理在于由专用DMA控制器接管地址生成、数据读写和计数控制,仅在传输完成或异常时通知CPU。在串口通信场景中,DMA常用于Memory-to-Peripheral模式,将SRAM缓冲区数据自动写入USART_DR寄存器,支撑高速、低负载的持续发送。该技术广泛应用于物联网终端、工业HMI、协议网关等需兼顾LCD刷新、传感器采集与串口透传的多任务系统。本文以STM32F4系列

weixin_42453228的博客 79

Keil5保姆级安装指南:从破解到STM32开发环境配置(附常见错误解决方案)

本文提供Keil5从安装到STM32开发环境配置的完整指南,包含破解步骤、常见错误解决方案及多芯片支持配置。详细讲解环境预检、核心安装、许可证管理及高效开发环境设置,帮助开发者快速搭建嵌入式开发平台。特别针对安装和卸载过程中的关键问题提供专业解决方案。

weixin_30369041的博客 120

山东大学软件工程应用与实践——GMSSL开源库(六)——SM9密钥交换协议

2021SC@SDUSC 文章目录基本概念符号及辅助算法SM9密钥交换协议 基本概念 1976年,Diffie和Hellman在其题为《密码学的新方向》的论文中首次给出了公钥密码学的定义,并提出了Diffie-Hellman密钥交换算法。该算法解决了对称密码体制中的密钥分发问题,使得通信双方可以通过公开信道安全地交换共享密钥。 使用SM9通信的双方通过对方的标识和自身的私钥,经过两次或者可选的三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥。该密钥可以作为对称密码算法的会话密钥,其中可选步骤用来实

m0_51588039的博客 1985

ECB oracle——attack

基于ECB oracle的攻击方案前言什么是ECB方案步骤1.确定块大小和明文大小2.暴力破解求明文脚本代码 前言 参考文章:Breaking ECB by prepending your own message. 环境地址:ECB oracle 什么是ECB 分组密码中AES的一种模式(其他还有:CBC、ECB、CTR、OCF、CFB)如图每一块加密是分开的。 方案步骤 1.确定块大小和明文大小 先用一个字符"a"去encrypt返回32个字节的数据(64位16进制)依次用"aa",“aaa”…去en

weixin_44617902的博客 1306

基于STM32的智能循迹小车设计(基础版)

基于STM32的智能循迹小车设计 硬件准备 1、小车底盘+四直流电机(带轮) 2、STM32F103C8T6核心板 3、12V 8700mAh锂电池(可以用几节18650锂电池) 4、循迹模块 选择的是TCRT500L,五路集成在一起,集成度比较高,但是可能不如五个单独的循迹模块好用 5、L298N电机驱动模块 四驱车为啥用L298N电机驱动模块? 可以把左边的两个电机并联,用输出A控制。把右边的两个电机并联,用输出B控制。 12V供电接电源正极,供电GND接电源负极和核心板GND,5V供电接核心

Rendezvous1的博客 3万+

Cursor AI编程工具保姆级安装指南:从下载到中文界面设置(含免费额度说明)

本文提供Cursor AI编程工具的保姆级安装与设置教程。详细指导从官网下载、安装到中文界面切换的每一步,并重点说明其每月500次高级模型调用的免费额度策略。通过个性化设置与核心插件推荐,帮助开发者快速上手,提升AI辅助编程效率。

weixin_29191761的博客 665

AD21导出gerber文件

文件–>制造输出–>Gerber Files 文件–>制造输出–>Gerber Files 通用、光圈和高级跟第一步一样 3.文件–>制造输出–>NC Drill Files 这个默认就可以了 主要参考视频来自bilibili添加链接描述 此篇博客主要是写给自己好记的,无其他商业用途 ...

新手小杨 1万+

Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文) 附安装包网盘下载

Hadoop+Spark+Flink+Zookeeper+Kafka+Hbase+Hive完全分布式高可用集群搭建 Hadoop高可用集群搭建 Spark高可用集群搭建 Flink高可用集群搭建 Zookeeper高可用集群搭建 Kafka高可用集群搭建 Hbase高可用集群搭建 Hive高可用集群搭建 mysql搭建 jdk部署 大数据集群环境搭建

Mr.L-OAM的博客 2万+

大疆视觉算法面试,手推极线几何这关刷掉了一半人

摘要:大疆机器视觉算法工程师面试重点考察目标检测工程优化、深度估计几何原理和视觉SLAM全流程。目标检测侧重模型压缩和部署优化,需掌握知识蒸馏、量化及算子融合;深度估计要求推导双目几何并理解单目深度恢复方法;视觉SLAM需熟悉前后端流程及ORB-SLAM3/VINS-Mono区别。面试常要求手推PnP等公式,注重实践能力。准备需重点练习公式推导和代码实现,掌握工程落地细节。

郑伟强dev的专栏 174

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: STM32读取Flash出现乱码,重新刷入进入HardFault
下一篇: ADAMS2017许可证安装时出现MSC.Licensing-InstallShied Wizard 许可证安装失败
花洛兮灬
博客等级 码龄9年 238粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值