chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

第二十三章 IWDG——獨立看門狗

W55MH32 ? 來源:W55MH32 ? 作者:W55MH32 ? 2025-06-20 13:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單芯片解決方案,開啟全新體驗——W55MH32 高性能以太網(wǎng)單片機

W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機,它為用戶帶來前所未有的集成化體驗。這顆芯片將強大的組件集于一身,具體來說,一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達(dá)216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨立的32KB以太網(wǎng)收發(fā)緩存,可供8個獨立硬件socket使用。如此配置,真正實現(xiàn)了All-in-One解決方案,為開發(fā)者提供極大便利。

在封裝規(guī)格上,W55MH32 提供了兩種選擇:QFN100和QFN68。

W55MH32L采用QFN100封裝版本,尺寸為12x12mm,其資源豐富,專為各種復(fù)雜工控場景設(shè)計。它擁有66個GPIO、3個ADC、12通道DMA、17個定時器、2個I2C、5個串口、2個SPI接口(其中1個帶I2S接口復(fù)用)、1個CAN、1個USB2.0以及1個SDIO接口。如此豐富的外設(shè)資源,能夠輕松應(yīng)對工業(yè)控制中多樣化的連接需求,無論是與各類傳感器、執(zhí)行器的通信,還是對復(fù)雜工業(yè)協(xié)議的支持,都能游刃有余,成為復(fù)雜工控領(lǐng)域的理想選擇。 同系列還有QFN68封裝的W55MH32Q版本,該版本體積更小,僅為8x8mm,成本低,適合集成度高的網(wǎng)關(guān)模組等場景,軟件使用方法一致。更多信息和資料請進(jìn)入網(wǎng)站或者私信獲取。

此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及 MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。

為助力開發(fā)者快速上手與深入開發(fā),基于W55MH32L這顆芯片,WIZnet精心打造了配套開發(fā)板。開發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實現(xiàn)調(diào)試、下載以及串口打印日志等功能。開發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開發(fā)者全面評估芯片性能。

若您想獲取芯片和開發(fā)板的更多詳細(xì)信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價格等,歡迎訪問官方網(wǎng)頁,我們期待與您共同探索W55MH32的無限可能。

wKgZPGgbOfaANhwzACodXd3sVzg463.png

第二十三章 IWDG——獨立看門狗

本章參考資料:《W55MH32參考手冊》IWDG章節(jié)。

學(xué)習(xí)本章時,配合《W55MH32參考手冊》IWDG章節(jié)一起閱讀,效果會更佳,特別是涉及到寄存器說明的部分。

1 IWDG簡介

W55MH32有兩個看門狗,一個是獨立看門狗另外一個是窗口看門狗,獨立看門狗號稱寵物狗,窗口看門狗號稱警犬,本章我們主要分析獨立看門狗的功能框圖和它的應(yīng)用。 獨立看門狗用通俗一點的話來解釋就是一個12位的遞減計數(shù)器,當(dāng)計數(shù)器的值從某個值一直減到0的時候,系統(tǒng)就會產(chǎn)生一個復(fù)位信號,即IWDG_RESET。 如果在計數(shù)沒減到0之前,刷新了計數(shù)器的值的話,那么就不會產(chǎn)生復(fù)位信號,這個動作就是我們經(jīng)常說的喂狗??撮T狗功能由 VDD 電壓域供電, 在停止模式和待機模式下仍能工作。

2 IWDG功能框圖剖析

IWDG功能框圖如下:

wKgZPGgxLH2AAruTAADyStAoJU4358.png

2.1 獨立看門狗時鐘

獨立看門狗的時鐘由獨立的RC振蕩器LSI提供,即使主時鐘發(fā)生故障它仍然有效,非常獨立。LSI的頻率一般在30~60KHZ之間, 根據(jù)溫度和工作場合會有一定的漂移,我們一般取40KHZ,所以獨立看門狗的定時時間并不一定非常精確,只適用于對時間精度要求比較低的場合。

2.2 計數(shù)器時鐘

遞減計數(shù)器的時鐘由LSI經(jīng)過一個8位的預(yù)分頻器得到,我們可以操作預(yù)分頻器寄存器IWDG_PR來設(shè)置分頻因子, 分頻因子可以是:[4,8,16,32,64,128,256,256],計數(shù)器時鐘CK_CNT= 40/ 4*2^PRV,一個計數(shù)器時鐘計數(shù)器就減一。

2.3 計數(shù)器

獨立看門狗的計數(shù)器是一個12位的遞減計數(shù)器,最大值為0XFFF,當(dāng)計數(shù)器減到0時,會產(chǎn)生一個復(fù)位信號:IWDG_RESET, 讓程序重新啟動運行,如果在計數(shù)器減到0之前刷新了計數(shù)器的值的話,就不會產(chǎn)生復(fù)位信號,重新刷新計數(shù)器值的這個動作我們俗稱喂狗。

2.4 重裝載寄存器

重裝載寄存器是一個12位的寄存器,里面裝著要刷新到計數(shù)器的值,這個值的大小決定著獨立看門狗的溢出時間。 超時時間Tout = (4*2^prv) / 40 * rlv (s) ,prv是預(yù)分頻器寄存器的值,rlv是重裝載寄存器的值。

2.5 鍵寄存器

鍵寄存器IWDG_KR可以說是獨立看門狗的一個控制寄存器,主要有三種控制方式,往這個寄存器寫入下面三個不同的值有不同的效果。

鍵值 鍵值作用
0XAAAAA 把 RLR 的值重裝載到 CNT
0X55555 PR 和 RLR 這兩個寄存器可寫
0XCCCC 啟動 IWDG

通過寫往鍵寄存器寫0XCCC來啟動看門狗是屬于軟件啟動的方式,一旦獨立看門狗啟動,它就關(guān)不掉,只有復(fù)位才能關(guān)掉。

2.6 狀態(tài)寄存器

狀態(tài)寄存器SR只有位0:PVU和位1:RVU有效,這兩位只能由硬件操作,軟件操作不了。RVU:看門狗計數(shù)器重裝載值更新, 硬件置1表示重裝載值的更新正在進(jìn)行中,更新完畢之后由硬件清0。PVU:看門狗預(yù)分頻值更新,硬件置’1’指示預(yù)分頻值的更新正在進(jìn)行中, 當(dāng)更新完成后,由硬件清0。所以只有當(dāng)RVU/PVU等于0的時候才可以更新重裝載寄存器/預(yù)分頻寄存器。

3 IWDG使用方法

獨立看門狗一般用來檢測和解決由程序引起的故障,比如一個程序正常運行的時間是50ms, 在運行完這個段程序之后緊接著進(jìn)行喂狗,我們設(shè)置獨立看門狗的定時溢出時間為60ms,比我們需要監(jiān)控的程序50ms多一點, 如果超過60ms還沒有喂狗,那就說明我們監(jiān)控的程序出故障了,跑飛了,那么就會產(chǎn)生系統(tǒng)復(fù)位,讓程序重新運行。

4 IWDG復(fù)位測試實驗

4.1 代碼解析

主要用于在 W55MH32 微控制器上實現(xiàn)看門狗定時器(IWDG)復(fù)位測試,并通過串口進(jìn)行數(shù)據(jù)交互。下面為你詳細(xì)解釋代碼的各個部分:

1. 頭文件包含

#include 
#include 
#include 
#include "delay.h"
#include "w55mh32.h"

stdlib.h、string.h 和 stdio.h 是標(biāo)準(zhǔn) C 庫的頭文件,分別提供了通用工具、字符串處理和輸入輸出的函數(shù)。

delay.h 可能是自定義的頭文件,用于實現(xiàn)延時功能。

w55mh32.h 可能是與特定硬件(如 W55MH32 芯片)相關(guān)的頭文件。

2. 全局變量定義

USART_TypeDef *USART_TEST = USART1;

定義了一個指向 USART_TypeDef 類型的指針 USART_TEST,并將其初始化為 USART1,這意味著后續(xù)的串口操作將使用 USART1。

3. 函數(shù)聲明

void    UART_Configuration(uint32_t bound);
uint8_t GetCmd(void);

UART_Configuration()函數(shù)用于配置串口,參數(shù) bound 表示波特率。

GetCmd()函數(shù)用于從串口接收數(shù)據(jù)。

4. main()函數(shù)

int main(void)
{
    RCC_ClocksTypeDef clocks;

    delay_init();
    UART_Configuration(115200);
    RCC_GetClocksFreq(&clocks);

    printf("n");
    printf("SYSCLK: %3.1fMhz, HCLK: %3.1fMhz, PCLK1: %3.1fMhz, PCLK2: %3.1fMhz, ADCCLK: %3.1fMhzn",
           (float)clocks.SYSCLK_Frequency / 1000000, (float)clocks.HCLK_Frequency / 1000000,
           (float)clocks.PCLK1_Frequency / 1000000, (float)clocks.PCLK2_Frequency / 1000000, (float)clocks.ADCCLK_Frequency / 1000000);

    printf("IWDG Reset Test.n");
    printf("Please Input 'r', Feed Dogn");

    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
    IWDG_SetPrescaler(IWDG_Prescaler_64);
    IWDG_SetReload(0x7FF);
    IWDG_ReloadCounter();
    IWDG_Enable();

    while (1)
    {
        if (GetCmd() == 'r')
        {
            IWDG_ReloadCounter();
            printf("Feed Dog Successn");
        }
    }
}

初始化部分:

delay_init() 初始化延時函數(shù)。

UART_Configuration(115200) 以 115200 的波特率配置串口。

RCC_GetClocksFreq(&clocks) 獲取系統(tǒng)時鐘頻率信息。

打印信息:

打印系統(tǒng)時鐘頻率信息。

提示進(jìn)行看門狗定時器復(fù)位測試,并告知用戶輸入 r 來喂狗。

看門狗定時器配置:

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable) 使能對看門狗定時器的寫訪問。

IWDG_SetPrescaler(IWDG_Prescaler_64) 設(shè)置看門狗定時器的預(yù)分頻器為 64。

IWDG_SetReload(0x7FF) 設(shè)置看門狗定時器的重裝載值為 0x7FF。

IWDG_ReloadCounter() 重載看門狗定時器計數(shù)器。

IWDG_Enable() 使能看門狗定時器。

主循環(huán):

不斷調(diào)用 GetCmd() 函數(shù)獲取串口輸入。

如果輸入為 r,則調(diào)用 IWDG_ReloadCounter() 喂狗,并打印 “Feed Dog Success”。

5. UART_Configuration()函數(shù)

void UART_Configuration(uint32_t bound)
{
    GPIO_InitTypeDef  GPIO_InitStructure;
    USART_InitTypeDef USART_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    USART_InitStructure.USART_BaudRate            = bound;
    USART_InitStructure.USART_WordLength          = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits            = USART_StopBits_1;
    USART_InitStructure.USART_Parity              = USART_Parity_No;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode                = USART_Mode_Rx | USART_Mode_Tx;

    USART_Init(USART_TEST, &USART_InitStructure);
    USART_Cmd(USART_TEST, ENABLE);
}

使能 USART1 和 GPIOA 的時鐘。

配置 GPIOA 的引腳 9 為復(fù)用推挽輸出,用于 USART1 的發(fā)送;引腳 10 為浮空輸入,用于 USART1 的接收。

配置 USART1 的波特率、數(shù)據(jù)位、停止位、奇偶校驗等參數(shù)。

初始化 USART1 并使能。

6.GetCmd()函數(shù)

uint8_t GetCmd(void)
{
    uint8_t tmp = 0;

    if (USART_GetFlagStatus(USART1, USART_FLAG_RXNE))
    {
        tmp = USART_ReceiveData(USART1);
    }
    return tmp;
}

檢查 USART1 的接收緩沖區(qū)非空標(biāo)志位 USART_FLAG_RXNE。

如果標(biāo)志位被置位,說明有數(shù)據(jù)到達(dá),從 USART1 接收數(shù)據(jù)并返回。

7. SER_PutChar()函數(shù)

int SER_PutChar(int ch)
{
    while (!USART_GetFlagStatus(USART_TEST, USART_FLAG_TC));
    USART_SendData(USART_TEST, (uint8_t)ch);

    return ch;
}

等待 USART1 的發(fā)送完成標(biāo)志位 USART_FLAG_TC 被置位。

發(fā)送字符 ch 到 USART1。

8. fputc()函數(shù)

int fputc(int c, FILE *f)
{
    /* Place your implementation of fputc here */
    /* e.g. write a character to the USART */
    if (c == 'n')
    {
        SER_PutChar('r');
    }
    return (SER_PutChar(c));
}

重定向標(biāo)準(zhǔn)輸出函數(shù) fputc(),使其通過串口發(fā)送數(shù)據(jù)。

如果要發(fā)送的字符是換行符 n,則先發(fā)送回車符 r。

4.2 下載驗證

這段代碼實現(xiàn)了一個簡單的看門狗定時器復(fù)位測試程序,通過串口與用戶交互,用戶可以輸入 r 來喂狗,避免看門狗定時器超時復(fù)位。

wKgZO2gxLH2AEE7tAAB-zNbHNOY112.png

WIZnet 是一家無晶圓廠半導(dǎo)體公司,成立于 1998 年。產(chǎn)品包括互聯(lián)網(wǎng)處理器 iMCU?,它采用 TOE(TCP/IP 卸載引擎)技術(shù),基于獨特的專利全硬連線 TCP/IP。iMCU? 面向各種應(yīng)用中的嵌入式互聯(lián)網(wǎng)設(shè)備。

WIZnet 在全球擁有 70 多家分銷商,在香港、韓國、美國設(shè)有辦事處,提供技術(shù)支持和產(chǎn)品營銷。

香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6074

    文章

    45322

    瀏覽量

    662904
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3359

    瀏覽量

    121652
  • IWDG
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    5748
  • 獨立看門狗
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    4378
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    獨立看門狗(IWDG)的基礎(chǔ)知識

      STM32F10xxx系列內(nèi)置兩個看門狗(獨立看門狗和窗口看門狗),提供了更高的安全性、時間的精確性和使用的靈活性。兩個看門狗設(shè)備(
    發(fā)表于 10-19 17:10 ?4983次閱讀
    <b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>(<b class='flag-5'>IWDG</b>)的基礎(chǔ)知識

    MM32獨立看門狗IWDG

    來源 靈動MM32一、IWDG簡介MM32 MCU內(nèi)置兩個看門狗,提供了更高的安全性、時間的精確性和使用的靈活性。兩個看門設(shè)備(獨立看門狗
    發(fā)表于 03-29 17:28

    獨立看門狗IWDG)的主要特性是什么?

    獨立看門狗IWDG)的主要特性是什么?獨立看門狗IWDG)的功能是什么?
    發(fā)表于 07-27 06:47

    獨立看門狗IWDG

    獨立看門狗IWDG)Tout=((4×2^prer) ×rlr) /32Khz獨立看門狗由內(nèi)部專門的 32Khz 低速時鐘(LSI)驅(qū)動。
    發(fā)表于 07-30 07:05

    獨立看門狗IWDG)和窗口看門狗( WWDG)

    一個熱愛代碼的工程師,唯有憑借雙手不斷敲打,才可以快速提升實力!本文謹(jǐn)以記錄,日后相忘時再作復(fù)習(xí),代碼沒有貴賤,既來之則安之。 STM32F1內(nèi)部自帶了 2 個看門狗獨立看門狗IWDG
    發(fā)表于 08-02 10:55

    如何對獨立看門狗IWDG)進(jìn)行配置

    獨立看門狗IWDG)的特性是什么?獨立看門狗IWDG)有哪些功能?如何對
    發(fā)表于 08-11 06:27

    第二十三講 異步計數(shù)器

    第二十三講 異步計數(shù)器 概述一、計數(shù)器:用以統(tǒng)計輸入計數(shù)脈沖CP個數(shù)的電路。計數(shù)器的“?!保ㄓ肕表示): 二、 計數(shù)器的分類1.按計數(shù)進(jìn)制分2.按計數(shù)
    發(fā)表于 03-30 16:27 ?1.3w次閱讀
    <b class='flag-5'>第二十三</b>講 異步計數(shù)器

    模擬電路網(wǎng)絡(luò)課件 第二十三節(jié):乙類雙電源互補對稱功率放大電路

    模擬電路網(wǎng)絡(luò)課件 第二十三節(jié):乙類雙電源互補對稱功率放大電路 5.2.1 電路的組成
    發(fā)表于 09-17 08:56 ?2427次閱讀

    2017中國西部微波射頻技術(shù)研討會暨第二十三屆國際電子測試測量研討會

    2017中國西部微波射頻技術(shù)研討會暨第二十三屆國際電子測試測量研討會
    發(fā)表于 07-05 15:12 ?1218次閱讀

    STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG)

    stm32自帶兩個看門狗模塊,獨立看門狗IWDG和窗口看門狗WWDG。看門狗主要作用是可用來檢測
    發(fā)表于 11-09 17:17 ?8709次閱讀
    STM32<b class='flag-5'>看門狗</b>配置(<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b><b class='flag-5'>IWDG</b>和窗口<b class='flag-5'>看門狗</b>WWDG)

    STM32看門狗WWDG和IWDG的區(qū)別是什么

    STM32有2個看門狗獨立看門狗和窗口看門狗獨立看門狗
    發(fā)表于 05-17 13:51 ?1.6w次閱讀
    STM32<b class='flag-5'>看門狗</b>WWDG和<b class='flag-5'>IWDG</b>的區(qū)別是什么

    MCU學(xué)習(xí)筆記_IWDG獨立看門狗

    MCU學(xué)習(xí)筆記IWDG獨立看門狗1. IWDG獨立看門狗概述2. 寄存器和HAL庫函數(shù)配置3.
    發(fā)表于 10-28 20:21 ?9次下載
    MCU學(xué)習(xí)筆記_<b class='flag-5'>IWDG</b><b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>

    【MCU】基于STM32CubeMX 實現(xiàn)獨立看門狗 IWDG

    STM32F10X 獨立看門狗 IWDG1. IWDG 簡介(1)STM32F10X內(nèi)置了獨立看門狗
    發(fā)表于 11-05 15:51 ?10次下載
    【MCU】基于STM32CubeMX 實現(xiàn)<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b> <b class='flag-5'>IWDG</b>

    【正點原子FPGA連載】第二十三章RGB-LCD字符和圖片顯示實驗 -摘自【正點原子】新起點之FPGA開發(fā)指南_V2.1

    【正點原子FPGA連載】第二十三章RGB-LCD字符和圖片顯示實驗 -摘自【正點原子】新起點之FPGA開發(fā)指南_V2.1
    發(fā)表于 11-24 14:36 ?13次下載
    【正點原子FPGA連載】<b class='flag-5'>第二十三章</b>RGB-LCD字符和圖片顯示實驗 -摘自【正點原子】新起點之FPGA開發(fā)指南_V2.1

    STM32L051使用HAL庫操作實例(6)-(IWDG)獨立看門狗實驗

    (IWDG)是獨立于系統(tǒng)之外,因為有獨立時鐘。窗口看門狗(WWDG)是系統(tǒng)內(nèi)部的故障探測器,時鐘與系統(tǒng)相同。如果系統(tǒng)時鐘不走了,這個也就失
    發(fā)表于 12-09 16:51 ?11次下載
    STM32L051使用HAL庫操作實例(6)-(<b class='flag-5'>IWDG</b>)<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>實驗