stm32——hal库学习笔记(IWDG)

这篇具有很好参考价值的文章主要介绍了stm32——hal库学习笔记(IWDG)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、IWDG简介(了解)

stm32——hal库学习笔记(IWDG),stm32,学习,笔记
IWDG有什么作用?
stm32——hal库学习笔记(IWDG),stm32,学习,笔记

二、IWDG工作原理(熟悉)

三、IWDG框图(熟悉)

stm32——hal库学习笔记(IWDG),stm32,学习,笔记

四、IWDG寄存器(熟悉)

键寄存器(IWDG_KR)
stm32——hal库学习笔记(IWDG),stm32,学习,笔记
预分频器寄存器 (IWDG_PR)
stm32——hal库学习笔记(IWDG),stm32,学习,笔记
重装载寄存器(IWDG_RLR)
stm32——hal库学习笔记(IWDG),stm32,学习,笔记
状态寄存器(IWDG_SR)
stm32——hal库学习笔记(IWDG),stm32,学习,笔记
寄存器配置操作步骤(了解)
stm32——hal库学习笔记(IWDG),stm32,学习,笔记

五、IWDG溢出时间计算(掌握)

stm32——hal库学习笔记(IWDG),stm32,学习,笔记
IWDG最短最长超时时间(F1)
stm32——hal库学习笔记(IWDG),stm32,学习,笔记

六、IWDG配置步骤(掌握)

stm32——hal库学习笔记(IWDG),stm32,学习,笔记

HAL_IWDG_Init()

stm32——hal库学习笔记(IWDG),stm32,学习,笔记

HAL_IWDG_Refresh()

HAL库相关函数介绍
stm32——hal库学习笔记(IWDG),stm32,学习,笔记

七、编程实战:验证不及时喂狗,系统将复位重启(掌握)

stm32——hal库学习笔记(IWDG),stm32,学习,笔记
wdg.c

#include "./BSP/WDG/wdg.h"


IWDG_HandleTypeDef g_iwdg_handle;   /* 独立看门狗句柄 */

/**
 * @brief       初始化独立看门狗 
 * @param       prer: IWDG_PRESCALER_4~IWDG_PRESCALER_256,对应4~256分频
 *   @arg       分频因子 = 4 * 2^prer. 但最大值只能是256!
 * @param       rlr: 自动重装载值,0~0XFFF. 
 * @note        时间计算(大概):Tout=((4 * 2^prer) * rlr) / 40 (ms). 
 * @retval      无
 */
void iwdg_init(uint8_t prer, uint16_t rlr)
{
    g_iwdg_handle.Instance = IWDG;
    g_iwdg_handle.Init.Prescaler = prer; /* 设置IWDG分频系数 */
    g_iwdg_handle.Init.Reload = rlr;     /* 重装载值 */
    HAL_IWDG_Init(&g_iwdg_handle);       /* 初始化IWDG并启动 */
}

/**
 * @brief       喂独立看门狗
 * @param       无
 * @retval      无
 */
void iwdg_feed(void)
{
    HAL_IWDG_Refresh(&g_iwdg_handle); /* 重装载计数器 */
}

wdg.h

#ifndef __WDG_H
#define __WDG_H

#include "./SYSTEM/sys/sys.h"


void iwdg_init(uint8_t prer, uint16_t rlr);
void iwdg_feed(void);

#endif

main.c文章来源地址https://www.toymoban.com/news/detail-834155.html

#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"
#include "./BSP/LED/led.h"
#include "./BSP/WDG/wdg.h"
#include "./BSP/KEY/key.h"


int main(void)
{
    HAL_Init();                             /* 初始化HAL库 */
    sys_stm32_clock_init(RCC_PLL_MUL9);     /* 设置时钟, 72Mhz */
    delay_init(72);                         /* 延时初始化 */
	
    usart_init(115200);                     /* 串口初始化为115200 */
    led_init();                             /* 初始化LED */
    key_init();                             /* 初始化按键 */
    delay_ms(100);                          /* 延时100ms再初始化看门狗,LED0的变化"可见" */
    iwdg_init(IWDG_PRESCALER_64, 625);      /* 预分频数为64,重载值为625,溢出时间约为1s */
    LED0(0);                                /* 点亮LED0(红灯) */

    while (1)
    {
        if (key_scan(1) == WKUP_PRES)       /* 如果WK_UP按下,则喂狗 */
        {
            iwdg_feed();                    /* 喂狗 */
        }

        delay_ms(10);
    }
}

到了这里,关于stm32——hal库学习笔记(IWDG)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stm32——hal库学习笔记(串口<二>)

    串口X初始化函数 UART底层初始化函数

    2024年02月22日
    浏览(29)
  • stm32——hal库学习笔记(WWDG)

    WWDG有什么作用? 控制寄存器 (WWDG_CR) 配置寄存器 (WWDG_CFR) 状态寄存器 (WWDG_SR) WWDG最短最长超时时间(F1为例) 相关HAL库函数介绍 wdg.c wdg.h main.c

    2024年02月22日
    浏览(31)
  • stm32——hal库学习笔记(DAC)

    相关HAL库函数介绍 关键结构体介绍(F1为例) adc3.c adc3.h dac.c dac.h main.c dac.c dac.h main.c dac3.c dac3.h dac.c dac.h main.c 6.2.1,什么是PWM DAC技术? 6.2.2,用分段函数表示PWM波 6.2.3,将PWM波分段函数进行傅里叶级数展开 6.2.4,PWM DAC的分辨率 6.2.5,8位分辨率下对RC滤波器的设计要求 6.2.6,

    2024年02月22日
    浏览(34)
  • stm32——hal库学习笔记(定时器)

    使用纯软件(CPU死等)的方式实现定时(延时)功能 使用精准的时基,通过硬件的方式,实现定时功能 递增计数模式实例说明 中心对齐模式实例说明 TIM6 和TIM7 控制寄存器 1(TIMx_CR1) TIM6 和TIM7 DMA/中断使能寄存器(TIMx_DIER) TIM6 和TIM7 状态寄存器(TIMx_SR) TIM6 和TIM7 计数器(TIMx_CNT)

    2024年02月21日
    浏览(43)
  • STM32学习笔记(一):输出PWM——HAL库

    本篇文章为个人参考总结所用,如果错误还望指出。 涉及的知识: 1、STM32CubeMx的部分使用 2、PWM原理及常用概念 3、用单片机生成一定频率的PWM 用到的软件及单片机: 1、STM32CubeMx 2、IDE: MDK-Keil软件 3、芯片:STM32F407ZGT6 4、开发板:正点原子探索者 注:不同型号的单片机实现

    2024年02月12日
    浏览(35)
  • stm32HAL库学习笔记----pwm驱动舵机

    目录 一、目标 二、准备 三、原理 四、cubemx 五、程序 实现stm32驱动舵机旋转0°,45°,90°,135°,180°等角度。 stm32f103(c8t6),舵机(SG90 9g),杜邦线 接线:舵机红线-----------5V(mcu)            舵机棕线-----------GND(mcu)            舵机黄线-----------PA1(视情况而定

    2023年04月26日
    浏览(29)
  • STM32学习笔记-SMT32使用HAL库UART中断方式使用

    目录 1、引言 2、配置 3、流程 近来需要使用蓝牙模块,再了解到蓝牙模块等无线模块许多使用串口透传,便决定在研究一下串口UART 的使用方法。 由于用的板子种类每次都不一样,有F103 有G0 有G4 还有公司的8位自研芯片,所以每次用起来都需要重头开始复习 每次使用UART的目

    2023年04月12日
    浏览(37)
  • keysking 【stm32】hal库学习笔记--定时器(超详细!)

    任务一:串口发送计数器的值 1.打开串口2及其中断,用于发送数据 2.将高速外部时钟源设置为晶振,提高定时精度 3.将HCLK改为72MHz 4.开启定时器 TIM4–勾选 Internal Clock(内部时钟)/ TIM2–将Clock Source选择为Internal Clock 5.设置预分频器 Prescaler–n(想要实现的分频)-1 Counter Perio

    2024年02月02日
    浏览(26)
  • STM32CubeIDE学习笔记——使用HAL库PWM输出驱动舵机

    目录 PWM驱动简介 工程配置 代码编写 这里我采用的是STM32F103C8T6最小系统板,SG-90舵机实现功能。 舵机驱动角度和PWM占空比有关系,具体对应为50--0度  150--90度  250--180度,通过STM32的定时器功能输出PWM波来控制舵机进行转动。  时钟选择外部高速时钟 系统映射配置 时钟树设

    2024年02月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包