zoukankan      html  css  js  c++  java
  • 某些STM32芯片在开启看门狗后仿真到断点处看门狗不会停止计数导致程序复位的问题

      我在使用STM32F767和STM32F407VG的时候,程序跑到断点处一会儿程序就复位了,关闭看门狗不出现这种问题。

      解决方法(在初始化看门狗之前添加下面代码):

      

    #define    DBGMCU_APB1_FZ_REG    (*(__IO uint32_t*)0xE0042008)
    #define    IWDG_HALT_DISABLE()    (DBGMCU_APB1_FZ_REG |= (1<<12))
    
    void  main()
    {
    .....
    IWDG_HALT_DISABLE();
    IWDG_Init(IWDG_PRESCALER_64,1000); 
    .....
    }

      

      问题原因:我通过参考手册,确认问题出在了DBGMCU寄存器的DBG_IWDG_STOP位,这个位的作用是调试模式时内核停止(断点)看门狗计数是否停止,内容如下。

     

       我在KEIL中查看该寄存器状态发现这个位置零了,而在STM32F407VE的仿真中该位是置高的(正常情况),因为STM32F407VG被置零了所以才会出现这种情况,具体为什么这个芯片会这样,我还没有找到原因,如果有网友知道请告知,感激不尽!

  • 相关阅读:
    systemd管理服务
    卷积神经网络
    matplotlib-3.2.1
    pandas-1.0.3
    numpy-1.18.4
    降维
    无监督学习-聚类
    集成学习
    人工神经网络
    贝叶斯分类
  • 原文地址:https://www.cnblogs.com/isyefeng/p/14333833.html
Copyright © 2011-2022 走看看