用户工具

站点工具


iwdg看门狗实验_复位arm

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
iwdg看门狗实验_复位arm [2020/07/04 09:43]
zgf
iwdg看门狗实验_复位arm [2022/03/22 10:18] (当前版本)
sean
行 1: 行 1:
 +
 +|  **银杏科技有限公司旗下技术文档发布平台** ​ ||||
 +|技术支持电话|**0379-69926675-801**|||
 +|技术支持邮件|Gingko@vip.163.com|||
 +^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 +|  V1.0  |  2020-07-04 ​ |  gingko ​ |  初次建立 ​ | 
  
 ===== 实验六:IWDG看门狗实验——复位ARM ===== ===== 实验六:IWDG看门狗实验——复位ARM =====
行 9: 行 15:
   - 掌握KEIL MDK 集成开发环境使用方法。   - 掌握KEIL MDK 集成开发环境使用方法。
 ==== 二、 实验设备及平台 ==== ==== 二、 实验设备及平台 ====
-  - iCore4 双核心板。 +  - iCore4 双核心板[[https://​item.taobao.com/​item.htm?​spm=a1z10.1-c-s.w4004-22598974120.15.5923532fsFrHiE&​id=551864196684|点击购买]]。 
-  - JLINK(或相同功能)仿真器。+  - JLINK(或相同功能)仿真器[[https://​item.taobao.com/​item.htm?​id=554869837940|点击购买]]
   - Micro USB线缆。   - Micro USB线缆。
   - Keil MDK 开发平台。   - Keil MDK 开发平台。
行 27: 行 33:
     * 当递减计数器值达到0x000时产生复位(如果看门狗已激活)。     * 当递减计数器值达到0x000时产生复位(如果看门狗已激活)。
     * 在窗口之外重载递减计数器时复位(如果看门狗已激活)。     * 在窗口之外重载递减计数器时复位(如果看门狗已激活)。
- +{{ :​icore4:​icore4_arm_hal_6_1.png?​direct |}} 
   * 看门狗功能由 VCORE 电压域供电,在停止模式和待机模式下仍能工作。   * 看门狗功能由 VCORE 电压域供电,在停止模式和待机模式下仍能工作。
   * 通过向键寄存器 (IWDG_KR)中写入值 0x0000 CCCC 来启动独立看门狗时,计数器开始从复位值 0xFFF 递减计数。当计数器计数到终值(0x000)时会产生一个复位信号(IWDG复位)。   * 通过向键寄存器 (IWDG_KR)中写入值 0x0000 CCCC 来启动独立看门狗时,计数器开始从复位值 0xFFF 递减计数。当计数器计数到终值(0x000)时会产生一个复位信号(IWDG复位)。
   * 任何时候将键值 0x0000 AAAA写到IWDG_KR寄存器中, IWDG_RLR的值就会被重载到计数器,从而避免产生看门狗复位。   * 任何时候将键值 0x0000 AAAA写到IWDG_KR寄存器中, IWDG_RLR的值就会被重载到计数器,从而避免产生看门狗复位。
- +{{ :​icore4:​icore4_arm_hal_6_1.png?​direct |}} 
 === 4、IWDG寄存器 === === 4、IWDG寄存器 ===
  
行 37: 行 43:
  
   * 该寄存器的各位描述如图:   * 该寄存器的各位描述如图:
- +{{ :​icore4:​icore4_arm_hal_6_1.png?​direct |}} 
   * 在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。无论何时,只要键寄存器IWDG_KR中被写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。   * 在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。无论何时,只要键寄存器IWDG_KR中被写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。
   * IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。将其他值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。重装载操作(即写入0xAAAA)也会启动写保护功能。   * IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。将其他值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。重装载操作(即写入0xAAAA)也会启动写保护功能。
行 43: 行 49:
  
   * 该寄存器用来设置看门狗时钟的分频系数,最低为4,最高位256,该寄存器是一个32位的寄存器,但是我们只用了最低3位,其他都是保留位。预分频寄存器各位定义如图所示:   * 该寄存器用来设置看门狗时钟的分频系数,最低为4,最高位256,该寄存器是一个32位的寄存器,但是我们只用了最低3位,其他都是保留位。预分频寄存器各位定义如图所示:
- +{{ :​icore4:​icore4_arm_hal_6_1.png?​direct |}} 
 == (3)重装载寄存器(IWDG_RLR) == == (3)重装载寄存器(IWDG_RLR) ==
  
   * 该寄存器用来保存重装载到计数器中的值。该寄存器也是一个32位寄存器,但是只有低12位是有效的,该寄存器的各位描述如图所示:   * 该寄存器用来保存重装载到计数器中的值。该寄存器也是一个32位寄存器,但是只有低12位是有效的,该寄存器的各位描述如图所示:
- +{{ :​icore4:​icore4_arm_hal_6_1.png?​direct |}} 
   * 只要对以上三个寄存器进行相应的设置,我们就可以启动 STM32F7 的独立看门狗。   * 只要对以上三个寄存器进行相应的设置,我们就可以启动 STM32F7 的独立看门狗。
   * 这里我们还要特别说明一下,STM32F7的独立看门狗还可以当做窗口看门狗使用,这是通过配置窗口寄存器IWDG_WINR来实现的。当我们没有设置IWDG_WINR寄存器的时候,独立看门狗就是我们前面讲解的工作过程,窗口计数器从其复位值0xFFF递减计数,当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET),只要键寄存器IWDG_KR中被写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。如果我们设置了IWDG_WINR寄存器的值(不等于0xFFF),那么当计数器值大于窗口值(IWDG_WINR)的值的时候如果执行重装操作,则会产生复位。所以我们必须在计数器的值在IWDG_WINR和0之间的时候执行重载,也就形成了一个窗口的概念。本实验我们将不设置IWDG_WINR寄存器的值,也就是不开启窗口功能。   * 这里我们还要特别说明一下,STM32F7的独立看门狗还可以当做窗口看门狗使用,这是通过配置窗口寄存器IWDG_WINR来实现的。当我们没有设置IWDG_WINR寄存器的时候,独立看门狗就是我们前面讲解的工作过程,窗口计数器从其复位值0xFFF递减计数,当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET),只要键寄存器IWDG_KR中被写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。如果我们设置了IWDG_WINR寄存器的值(不等于0xFFF),那么当计数器值大于窗口值(IWDG_WINR)的值的时候如果执行重装操作,则会产生复位。所以我们必须在计数器的值在IWDG_WINR和0之间的时候执行重载,也就形成了一个窗口的概念。本实验我们将不设置IWDG_WINR寄存器的值,也就是不开启窗口功能。
iwdg看门狗实验_复位arm.1593827007.txt.gz · 最后更改: 2020/07/04 09:43 由 zgf