ARM嵌入式学习日记(7)

看门狗实验(顺手喂一下隔壁村狗子)

不介绍了,去隔壁村扒一个过来,就当作喂狗的奖励

(诚实的原图出)为了帮助隔壁村子狗独立,咱就讲下独立看门狗实验

main.c

#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"
#include "./BSP/LED/led.h"
#include "./BSP/DOG/dog.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);
    }
}

dog.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);  /* ÖØ×°ÔؼÆÊýÆ÷ */
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值