【STM32】Debug下禁用看门狗

发布者:知音学友最新更新时间:2021-10-14 来源: eefocus关键字:STM32  Debug 手机看文章 扫描二维码
随时随地手机看文章

问题背景:

因为工程中加入了独立看门狗IWDG,但是有时候需要硬件仿真单步调试设置个断点啥的,这时候看门狗就会因为没有及时喂狗复位,弹窗报错,整个仿真都不能继续了。实测JLINK会弹窗如下图所示,但是亲儿子STLINK没有任何弹窗…

在这里插入图片描述

之前一直都是在debug的时候关掉看门狗宏定义,但是这样麻烦不说,会有一个隐患存在就是,真正的项目工程是需要看门狗的,我们随意关掉的话,终究会存在debug完之后忘记再重新打开看门狗的问题,所以我们最好的办法是能够在debug这个特定的条件下,冻结掉看门狗,就像低功耗下冻结看门狗一样。


解决办法:

翻阅参考手册

在这里插入图片描述
在这里插入图片描述

#define __HAL_DBGMCU_FREEZE_IWDG()           SET_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_IWDG_STOP)

#define __HAL_DBGMCU_UNFREEZE_IWDG()         CLEAR_BIT(DBG->APBFZ1, DBG_APB_FZ1_DBG_IWDG_STOP)


/*********************调试模式下禁用独立看门狗IWDG**********************************/

__HAL_RCC_DBGMCU_CLK_ENABLE();  //打开时钟

__HAL_DBGMCU_FREEZE_IWDG();   //调试模式下,冻结看门狗计数器时钟

    __HAL_RCC_DBGMCU_CLK_DISABLE();   //关闭时钟

    

/*********************调试模式下使能独立看门狗IWDG**********************************/

__HAL_RCC_DBGMCU_CLK_ENABLE();  //打开时钟

__HAL_DBGMCU_UNFREEZE_IWDG();   //调试模式下,使能看门狗计数器时钟

    __HAL_RCC_DBGMCU_CLK_DISABLE();   //关闭时钟

关键字:STM32  Debug 引用地址:【STM32】Debug下禁用看门狗

上一篇:【STM32】HAL库调用HAL_SPI_Transmit出现HartFault问题
下一篇:【STM32】解决J-Flash烧入固件无法正常运行

推荐阅读最新更新时间:2024-11-18 10:55

STM32供电方案一览
了解电源之前,先来简单了解一下各种电源端口的命名 VCC:C=circuit 表示电路的意思, 即接入电路的电压。 VDD:D=device 表示器件的意思, 即器件内部的工作电压。 VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压。 GND:在电路里常被定为电压参考基点。 VEE:负电压供电;场效应管的源极(S) VPP:编程/擦除电压。 V*与V*A的区别是:数字与模拟的区别 数字电路供电VCC 模拟电路供电VCCA STM32供电方案一览 STM32的电源框图如下所示,电源供电共分为4个区域: VDD、VSS供电区域; VDDA、VSSA供电区域; 1.8V供电区域; 后备电源(VBAT)供电区域;
[单片机]
<font color='red'>STM32</font>供电方案一览
担心STM32时钟PLL各参数配错吗?
有些朋友不理解为什么STM32时钟要先倍频N倍,再分频?你会担心这个值太大吗? 1写在前面 STM32时钟的功能,可以说是越来越强大了。 从各个系列的时钟树可以看得出来,最早F1系列的时钟功能相对比较简单,到这后面H7、G0的时钟越来越丰富。 今天讲述一下其中的PLL环节。 2关于PLL 什么是PLL? PLL:Phase Locked Loop锁相环。 PLL用于振荡器中的反馈技术,通常需要外部的输入信号与内部的振荡信号同步。 一般的晶振由于工艺与成本原因,做不到很高的频率,而在需要高频应用时,由相应的器件VCO,实现转成高频,但并不稳定,故利用锁相环路就可以实现稳定且高频的时钟信号。 ---来自百度百科 每一块STM3
[单片机]
担心<font color='red'>STM32</font>时钟PLL各参数配错吗?
stm32 串口连续接收 发送的出错的问题
上代码: 初始化部分: /* * 串口1 初始化 */ void USART1_Initial(void) { USART_InitTypeDef USART_InitStruct; GPIO_InitTypeDef GPIO_InitStructure; // 设置复用到串口的IO口 PA10 PA11 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //USART1 TX GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz
[单片机]
<font color='red'>stm32</font> 串口连续接收 发送的出错的问题
STM32串口超时判断方式接收未知长度数据
usart.c串口中断处理函数: void USART1_IRQHandler(void) { u8 res; if(USART1- SR&(1 5))//接收到数据 { res=USART1- DR; if(USART1_Recv_Len USART1_MAX_RECV_LEN) //还可以接收数据 { TIM3- CNT=0; //计数器清空 if(Rec_Over_Flag==0)TIM3_Set(1); //使能定时器4的中断 USART1_RX_BUF =res; //记录接收到的值 }else { Rec_Over_Flag=1; //强制标记接收完成 }
[单片机]
stm32时钟配置
STM32时钟系统 在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 ①HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。 在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法 如果使用内部RC振荡器而不使用外部晶振,请按照下
[单片机]
STM32的IO口的8种配置详解
1 STM32 的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出) ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU ③ 带下拉输入_IPD ④ 模拟输入_AIN ⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP ⑦ 复用功能的推挽输出_AF_PP ⑧ 复用功能的开漏输出_AF_OD 1.1 I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路
[单片机]
STM32开发 -- 复位类型判断
复位类型的情况有多种,会导致MCU重启。 因此我们有必要确认一下是何种复位导致的。 一、复位类型 想要查看复位类型可以看一下RCC_GetFlagStatus函数说明 / ** * @brief检查是否设置了指定的RCC标志。 * @param RCC_FLAG:指定要检查的标志。 * *对于@b STM32_Connectivity_line_devices,此参数可以是其中之一 *以下值: * @arg RCC_FLAG_HSIRDY:HSI振荡器时钟就绪 * @arg RCC_FLAG_HSERDY:准备好HSE振荡器时钟 * @arg RCC_FLAG_PLLRDY:PLL时钟就绪 * @arg
[单片机]
STM32原有的MDK工程下移植到GCC环境
1. 增加 STM32F429IGTx_FLASH.ld 这个文件存放芯片内存信息 STM32F429IGTx_FLASH.ld主要存放的是芯片内存的信息,堆栈大小,RAM,Flash大小, MEMORY{ }中存放的内存段,程序中有使用明确内存的地址的地方要在这里定义。 /* Entry Point */ ENTRY(Reset_Handler) /* Highest address of the user mode stack */ _estack = 0x20020000; /* end of RAM */ /* Generate a link error if heap and stack don&
[单片机]

推荐帖子

PCB 3D
PCB3D显示的时候,想导入塑料外壳进行匹配,目前只有2D的塑壳CAD的图纸,该如何导入和处理???PCB3D用三维软件把塑料外壳画出来,将PCB3D导出到step文件然后用三维软件打开step文件不过说这容易,操作过程有点复杂,需要会一种结构三维软件,比如solidworks 好,学习了,谢谢答复
y2018y PCB设计
救助:vxworks 下zbuf socket 编程
以前在windows下写过socket程序,现在要在vxworks下使用zbuf,不知道怎么用。tornado的文档里面有介绍zbuf的使用,但我现在用的是workbench,这里面的文档没有介绍zbuf的,不知道是不是也支持zbuf?这下面好像没有zbufLib.h头文件,是不是有别的什么文件包含了zbuf的一些函数?谢谢大家。救助:vxworks下zbufsocket编程没有人回复我~~很急啊。我自己顶!vxWorks6的网络部分和5的区别比较大,zbuf不支持
zhenxining 实时操作系统RTOS
世界著名汽车品牌标识演化历史----- 萨博
萨博Saab如果你看过萨博汽车公司的广告,那么你可能知道这个公司是“从喷气机中诞生”的。1937年,为了满足瑞典空军的需要,SvenskaAeroplanAktiebolaget(瑞典飞机有限公司,简称SAAB)成立了。第二世界大战结束后,萨博飞机公司为了使它的生意更加多样化,开始制造汽车。1946年,他们制造了第一辆原型车,名叫Saab92001或者Ursaab(意思是最初的萨博)。测试时行驶了几乎53万公里。为了保密,他们经常选择清晨或傍晚,在森林中泥泞狭
1ying 汽车电子
七行代码实现一个超声波测距仪(Oled屏显示)
一、前言shineblinkcore开发板(简称Core)的库函数支持US-015超声波测距传感器,所以只需要调用两个API,即可实现超声波测距功能。PS:Core仅用五、六行代码即可实现Wifi/Ble/NB/Lora/ThreadMesh/RFID/Eth/Usb/RS485/RS232通信、以及30多种传感器/10多种硬件外设/10多种Mcu内设功能,并且这些功能最多可以5种随机组合同时运行。二、制作材料 shineblinkcore开发板一个
wadewade 单片机
我的是笔记本没有串口,我想买一个PCMCIA转双串口的卡和友善arm9的mini 2440,请问谁用过给点建议
RT,谁比较了解,推荐一个牌子的PCMCIA转串口的双串口卡,也说说价格,我之所以想买个转双串口的卡是为了如果有兴趣,还可以将两个串口连起来,学习串口编程,对于学习串口编程需要的硬件条件,大家也给点建议,同时对嵌入式编程(友善arm9的mini2440)大家有啥建议,畅所欲言!!!我的是笔记本没有串口,我想买一个PCMCIA转双串口的卡和友善arm9的mini2440,请问谁用过给点建议现在山寨的JLink也才百来块的顺便还带USB转串口。额,把笔记本的光驱拆了,装个并口和串口,大家
toyla ARM技术
con、pin问题
请问PIN、CON、HEDAER不带针的一头应接什么?con、pin问题啥???有图么?
无泪的哭泣 PCB设计
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved