STM32意外复位问题调试

发布者:真诚友谊最新更新时间:2019-03-24 来源: eefocus关键字:STM32  意外复位 手机看文章 扫描二维码
随时随地手机看文章

最近在使用STM32座项目时遇到一个奇怪的问题。系统一开始运行很正常但是在长时间运行之后会随机的出现STM2单片机无故产生复位的问题。因为在调试的过程中收获颇多,所以打算记录一下这一次的调试过程。


首先做问题分析,既然单片机在运行一段时间之后会产生复位。那具体是什么原因引起的单片机复位呢?拍脑子一想会不会是没有及时喂狗导致看门狗溢出引起的复位。为了证明这一点我们查询了stm32的数据手册有关于复位源的介绍



由上面的描述我们可以知道在RCC_CSR中记录了单片机复位的类型。因此我们只要在单片机启动时去读取该寄存器中的对应状态位即可判断出单片机上一次是因为何种原因产生复位的。注意:RCC_CSR寄存器是需要软件清除的。如果已经产生的复位标志没有被清除他会一直被存储,即使不在有对应的复位产生该复位标志还是一直存在。所以我们在使用其判断上一次复位类型时需要先软件清除方可使用。


通过上面的方法果然确定了复位的原因是由看门狗溢出引起的复位。那到底是什么原因引起的看门狗溢出?在线调试发现是因为产生了hardfault错误系统进入了hardfault的while循环所以没有喂狗而导致看门狗溢出引起系统复位。


为什么会引起hardfault错误呢?这个真的很奇怪哎。不过不怕只要我们能定位到单片机在引起hardfault错误前执行了什么程序应该就能进一步去判断问题引起的原因。这里介绍一下在keil中定位的方法。当进入Hard Fault断点后,菜单栏Peripherals >Core Peripherals >Fault Reports打开异常发生的报告,查看发生异常的原因。


由上面的的报告可知发生了BUS FAULT,并将Fault的中断服务转向Hard Fault。接下来我们点击View选择Call Stack窗口。然后在Call Stack的HardFault_Handler上右键Show Caller Code,这时候我们就能定位到是因为那条语句引起的HardFault错误了。


主要原因是自己在定义数组长度时使用了变量。导致的HardFault错误。修改对数组的定义。取消使用变量来初始化数组长度后。问题得到解决。


关键字:STM32  意外复位 引用地址:STM32意外复位问题调试

上一篇:STM32-仿真调试时的SystemInit陷阱
下一篇:关于stm32 HardFault_Handler 异常的处理死机

推荐阅读最新更新时间:2024-03-16 16:26

基于STM32CubeIDE软件实现的STM32外部中断实例
本文用STM32CubeIDE软件实现STM32外部中断实例。 新建工程 “File”-“New”-“STM32 Project”。 输入芯片型号STM32F103ZE。 选择相应封装,下一步。 填写项目名,选择工程位置,下一步。 配置时钟、调试模式 选择高速外部时钟。 HCLK总线时钟处输入72,回车,配置使用最高时钟频率。 调试模式选择串行,方便下载程序。 配置管脚外设 本实例中用到了LED1与KEY_LEFT,找到相应电路图。 可见LED1对应PC0管脚,低电平点亮。按键K1对应PE2管脚,低电平有效。 PC0配置为GPIO_Output,GPIO输出模式 PE2配置为GPIO_EX
[单片机]
基于STM32CubeIDE软件实现的<font color='red'>STM32</font>外部中断实例
STM32学习之:DMA详解(2)
DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧。下面用问答的形式表达我的思路。 DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。 有多少个DMA资源? 有两个DMA控制器,DMA1有7个通道,DMA2有5个通道。 数据从什么地方送到什么地方? 外设到SRAM(I2C/UART等获取数据并送入SRAM); SRAM的两个区域之间; 外设到外设(ADC读取数据后送到TIM1控制其产生不同的PWM占空比);
[单片机]
STM32 BootLoader跳转APP跑飞 可能是因为找不到某些中断函数入口
在做嵌入式产品时,有时为方便更新设备程序(如远程更新或者只更新模块程序等原因),就要用到bootloader对设备进行必要的初始化,引导下载APP等。 STM官网下载的bootloader程序中并没有用到定时器等,很可能遇不到下面的问题。但是小猿猴如我等,会迫不及待的对其进行“魔改”,再经过二手三手,再加上运气不好,下面的问题就很容易暴露出来了: 现象: bootloader 下载并跳转某些 app 程序时,app运行正常; 对于某些app来说,却根本跑不起来; app本身运行没有问题; bootlaoder+app运行,J-Link在线仿真时,发现报硬件错误; 原因之一: bootloader 中开启了某些中断(并编写了中断
[单片机]
基于STM32嵌入式系统的智能控制网络终端设计
0 引言   智能网络终端是实现智能化管理的嵌入式终端设备。通常具有安全门禁系统和自动化控制的基本功能。本文重点介绍基于STM32的智能嵌入式终端的网络控制功能的设计和实现。 1 智能网络通信实现方案   将嵌入式系统与Internet连接起来实现远距离信息获取和控制功能的本质是嵌入式系统本身能够实现TCP/IP网络通信协议。该协议的解决方案总体上可分为两大类。第一类是直接在嵌入式设备上实现TCP/IP,使之直接连上Internet。这实质上是由MCU及内部固化TCP/IP协议的芯片组成应用系统的核心,MCU可以直接拨号上网,这种方法的硬件电路相对简单,也不需要中间环节的支持。但是由于使用了TCP/IP协议芯片,因此需要大容
[安防电子]
基于<font color='red'>STM32</font>嵌入式系统的智能控制网络终端设计
LwIP学习笔记——STM32 ENC28J60移植与入门
0.前言 去年(2013年)的整理了LwIP相关代码,并在STM32上“裸奔”成功。一直没有时间深入整理,在这里借博文整理总结。LwIP的移植过程细节很多,博文也不可能一一详解个别部分只能点到为止。 【本文要点】 【1】不带操作系统的LwIP移植,LwIP版本为1.4.1。 【2】MCU为STM32F103VE,网卡为ENC28J60。 【3】移植过程重点描述ethernetif.c和LwIP宏配置等。 【4】一个简单的TCP echo例子。 【5】力求简单,没有DHCP功能,甚至没有用到网卡中断。 【代码仓库】 代码仓库位于 Bitbucket (要源代码请点击这里)。博文中不能把每个细节描述
[单片机]
LwIP学习笔记——<font color='red'>STM32</font> ENC28J60移植与入门
STM32驱动0.96 OLED I2C显示程序
0.96 OLED的主控芯片是SSD1306,用STM32驱动OLED显示的程序如处图所示 #include system.h #include SysTick.h #include OLED_I2C.h int main() { u8 i; extern const unsigned char BMP1 ; SysTick_Init(72); I2C_Configuration(); OLED_Init(); while(1) { OLED_CLS(); for(i=0;i 5
[单片机]
<font color='red'>STM32</font>驱动0.96 OLED I2C显示程序
基于STM32单片机设计指纹考勤机+上位机管理
1. 前言 随着信息科学技术的不断进步,信息科学技术已进入到了当今生活的方方面面,尤其是每个行业的经管领域,这类智能化信息技术处理是提高效率、从严管制、公平审查较为有效的方法。考勤登记,作为企业职工的基本管理,是对职工每日出勤管理的根本根据。但是,目前我国绝大多数企业在考勤登记时,依然利用的是古板的考勤方法,比如: 人工注册、打卡、机器打卡等,不光考勤速度较为缓慢,并且在考勤登记时候要专门职员在一边进行记载、统计数据、制成EXCEL表,而报表做完后最终交到主管手里时,有时候时间已过了好几天,根本不行,也不可以施展考勤真实的监视作用。并且还有可能呈现考勤数据不准确,考勤职员纪录犯错,乃至卖弄虚假的这种现象,极度破坏了企业对职工的日常
[单片机]
基于<font color='red'>STM32</font>单片机设计指纹考勤机+上位机管理
学习笔记----stm32的usb外设概述
一、stm32的usb简介: 1。usb外设实现了usb2.0全速总线和APB1总线间的接口。 2。usb外设支持usb挂起/恢复操作,可以停止设备时钟实现低功耗。 二、usb主要特征 1。符合usb2.0全速设备的技术规范 2。可配置1到8个usb端口 3。CRC(循环荣誉校验)生成/检验,反向不归零(NRZI)编码/解码和位填充 4。支持同步传输 5。支持批量/同步端点的双缓冲区机制 6。支持usb挂起/恢复操作 7。诊所定时钟脉冲生成 注意:usb和can公用一个专用的512字节的SRAM存储器用于数据的发送和接收,因此不能同时使用usb和can(共享的SRAM被usb和can模块互斥的访问)usb和can可以同时用于一
[单片机]
学习笔记----<font color='red'>stm32</font>的usb外设概述
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved