【STM32CubeMX】F103&独立看门狗

前言

  本文记录了我学习STM32CubeMX的过程,方便以后回忆。我们使用的开发板是基于STM32F103C6T6的。本章记录了独立看门狗的使用配置。要学习的话,注意流程一说的,省略的内容。

基础

  • 独立看门狗(WWDG)开启后,复位自动开启。
  • 独立看门狗(WWDG)的时钟源为独立的RC振荡器LSI(40MHz)提供,软件配置分频系数最大为256。
  • 看门狗被激活后,递减计数器,则在计数器计数至0x000时产生复位,值的寄存器为12位,所以最大值为4096(0xFFF)。
  • 喂狗行为,在键寄存器中写入喂狗指令(0xAAAA),就会把重装载寄存器的数值重装给计数值。
  • 预分频寄存器和重装载寄存器有写保护,修改数值时,先向键寄存器发送指令。

流程

独立看门狗  实验目的:检测独立看门狗超时后,复位有没有被触发。

  1. 以下省略LED引脚(PC13)的配置。工程文件输出keil工程配置省略。这个就不讲了,其它文章讲过了。独立看门狗(WWDG)的时钟源为独立的RC振荡器LSI(40MHz)提供,在下图有标注。

    在这里插入图片描述

  2. 独立看门狗的配置

    配置一个超时时间为40ms:

    (主频/分频系数)*计数值=(40KHz/4)*(400-1+1)=40ms (应该要减1吧,大概大概)

    在这里插入图片描述

    配置完成后,生成工程。下面有,官方手册配置参数介绍

    在这里插入图片描述

  3. keil中打开,生成的工程。

    喂狗超时时间为40ms,两个测试:

    测试1:不加喂狗程序。主程序,延时20ms后点灯,40ms后被复位。现象,小灯不断闪烁。

    测试2:加喂狗程序。主程序,延时40ms后点灯,并加喂狗程序。现象,小灯一直亮。

    上述两个测试我都以实验过,代码和现象是对的,下述是介绍代码。

    • 测试1

      //关键代码,主函数中加上
      //现象,小灯不断闪烁。(LED上电默认高电平)
      HAL_Delay(20);	//延时20ms
      HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);	//点亮LED
      

      在这里插入图片描述

    • 测试2

      //关键代码,主函数中加上
      //现象,小灯一直亮(LED上电默认高电平)
      HAL_Delay(20);	//延时20ms
      HAL_IWDG_Refresh(&hiwdg);	//喂狗(重装40ms)
      HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);	//点亮LED
      

      在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值