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

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

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

串口看門狗編程實驗詳解

算法&編程學(xué)院 ? 作者:工程師a ? 2018-05-20 10:25 ? 次閱讀

// 獨立看門狗沒有中斷,WWDG有

// IWDG有時鐘(LSI),wwdg需要掛載(PCK1:APB1)

// IWDG是12位遞減的。WWDG是7位遞減的

// IWDG只有下限,WWDG有下限和上限

// IWDG最適合應(yīng)用于那些需要看門狗作為一個在主程序之外,能夠完全獨立工作,并且對時間精度要求較低的場合。 WWDG最適合那些要求看門狗在精確計時窗口起作用的應(yīng)用程序

#include “stm32f4xx.h”

void delay(void);

void led_init(void);

void wwdg_init(u8 tr,u8 wval,u32 pre);

void WWDG_IRQHandler(void);

u8 WWDG_CNT=0X7F;

int main(){

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

led_init();

GPIO_ResetBits(GPIOF,GPIO_Pin_10);

delay();

delay();

GPIO_SetBits(GPIOF,GPIO_Pin_10);

wwdg_init(0x7f,0x5f,WWDG_Prescaler_8);

while(1){

GPIO_ResetBits(GPIOF,GPIO_Pin_10);

}

}

void delay(void){

int i,j;

for(i=0;i《100000;i++)

for(j=0;j《1000;j++)

{}

}

void led_init(void){ // 保持DS1燈常亮,當熄滅時,表示MCU復(fù)位,說明沒有喂狗。 DS0當喂狗時閃爍

GPIO_InitTypeDef GPIO_InitStruct;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;

GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;

GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;

GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;

GPIO_InitStruct.GPIO_Speed=GPIO_Fast_Speed;

GPIO_Init( GPIOF, &GPIO_InitStruct);

GPIO_SetBits(GPIOF,GPIO_Pin_10|GPIO_Pin_9);

}

void wwdg_init(u8 tr,u8 wval,u32 pre){ // 分別為計算計數(shù)器初值、看門狗窗口值(上限:自己設(shè)定,下限0x40)、分頻數(shù)

NVIC_InitTypeDef NVIC_InitStruct;

WWDG_CNT=tr&WWDG_CNT;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE); // wwdg掛載的時鐘,iwdg有自己的時鐘,不需要掛載

WWDG_SetWindowValue(wval);

WWDG_SetPrescaler(pre);

WWDG_Enable(WWDG_CNT);// 開啟看門狗:設(shè)置了計數(shù)器初值,并且使能了看門狗

NVIC_InitStruct.NVIC_IRQChannel=WWDG_IRQn;

NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;

NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0x02;

NVIC_InitStruct.NVIC_IRQChannelSubPriority=0x02;

NVIC_Init(& NVIC_InitStruct);

WWDG_ClearFlag();

WWDG_EnableIT();// 開啟提前喚醒中斷

}

void WWDG_IRQHandler(void){

WWDG_SetCounter(WWDG_CNT);

WWDG_ClearFlag();

GPIO_ResetBits(GPIOF,GPIO_Pin_9); //中斷處理函數(shù),中間出現(xiàn)喂狗,DS0就會閃一下

delay();

delay();

delay();

GPIO_SetBits(GPIOF,GPIO_Pin_9);

}

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

    關(guān)注

    10

    文章

    554

    瀏覽量

    70572
收藏 人收藏

    評論

    相關(guān)推薦

    STM32中的獨立看門狗和窗口看門狗是什么

    在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨立看門狗
    的頭像 發(fā)表于 02-20 17:47 ?2504次閱讀
    STM32中的獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>是什么

    什么是看門狗電路

    看門狗電路 看門狗電路一般有軟件看門狗和硬件看門狗兩種。軟件看門狗不需外接硬件電路,但系統(tǒng)需要出讓一個定時器資源,這在許多系統(tǒng)中很
    發(fā)表于 10-21 01:40 ?8071次閱讀

    Arduino 看門狗

    Arduino的看門狗程序,UNO直接可以串口下載。
    發(fā)表于 05-25 10:01 ?16次下載

    看門狗的c語言編程

    看門狗的c語言編程,快來下載學(xué)習(xí)啊
    發(fā)表于 07-04 14:01 ?11次下載

    stm32看門狗時間計算 獨立看門狗和窗口看門狗的特性是什么

    本文為您講解STM看門狗時間計算(時限)與頻率計算,獨立看門狗和窗口看門狗的特性、區(qū)別與聯(lián)系。
    發(fā)表于 10-10 10:41 ?8663次閱讀

    什么是stm32看門狗?獨立看門狗和窗口看門狗工作原理解析

    stm32有兩個看門狗,獨立看門狗和窗口看門狗,其實兩者的功能是類似的,只是喂狗的限制時間不同。 獨立看門狗
    的頭像 發(fā)表于 11-06 11:48 ?2.7w次閱讀
    什么是stm32<b class='flag-5'>看門狗</b>?獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>工作原理解析

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

    stm32自帶兩個看門狗模塊,獨立看門狗IWDG和窗口看門狗WWDG。看門狗主要作用是可用來檢測和解決由軟件錯誤引起的故障;當計數(shù)器達到給定的超時值時,觸發(fā)一個中斷(僅適用于窗口型
    發(fā)表于 11-09 17:17 ?8292次閱讀
    STM32<b class='flag-5'>看門狗</b>配置(獨立<b class='flag-5'>看門狗</b>IWDG和窗口<b class='flag-5'>看門狗</b>WWDG)

    獨立看門狗實驗-IWDG-M3

    關(guān)于STM32獨立看門狗實驗文檔
    發(fā)表于 11-27 15:30 ?3次下載

    MCU獨立看門狗與窗口看門狗的區(qū)別

    早期的MCU沒有看門狗,就容易引起有些產(chǎn)品死機了不能重啟工作。為了避免這個問題,后期的MCU在內(nèi)部集成了看門狗的功能。為了滿足更多使用場景,現(xiàn)在很多MCU都集成了兩個看門狗:獨立看門狗
    發(fā)表于 10-28 20:06 ?8次下載
    MCU獨立<b class='flag-5'>看門狗</b>與窗口<b class='flag-5'>看門狗</b>的區(qū)別

    【嵌入式系統(tǒng)】獨立看門狗原理+看門狗實驗分析

    【嵌入式系統(tǒng)】獨立看門狗原理+看門狗實驗分析1、看門狗模塊概述在由單片機構(gòu)成的微機系統(tǒng)中,由于單片機工作常常會受到來自外界電磁場干擾導(dǎo)致程序跑飛,陷入死循環(huán)——即程序正常運行被打斷,系
    發(fā)表于 11-25 09:51 ?1次下載
    【嵌入式系統(tǒng)】獨立<b class='flag-5'>看門狗</b>原理+<b class='flag-5'>看門狗</b><b class='flag-5'>實驗</b>分析

    STM32:獨立看門狗、窗口看門狗的配置

    STM32單片機的看門狗有獨立看門狗和窗口看門狗之分,這兩者的工作原理卻完全不同。
    發(fā)表于 02-08 16:15 ?18次下載
    STM32:獨立<b class='flag-5'>看門狗</b>、窗口<b class='flag-5'>看門狗</b>的配置

    STM32中的獨立看門狗和窗口看門狗

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨立
    的頭像 發(fā)表于 12-22 16:58 ?1892次閱讀

    詳解獨立看門狗的實現(xiàn)原理

    這里以大家熟悉的STM32為例給大家講解一下獨立看門狗的配置以及工作過程。STM32F10xxx內(nèi)置兩個看門狗:獨立看門狗和窗口看門狗,提供了更高的安全性、時間的精確性和使用的靈活性。
    發(fā)表于 12-22 17:01 ?2975次閱讀

    STM32中的獨立看門狗和窗口看門狗

    在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨立看門狗
    的頭像 發(fā)表于 01-30 14:38 ?1215次閱讀
    STM32中的獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>

    軟件看門狗和硬件看門狗的區(qū)別

    系統(tǒng)出現(xiàn)了故障或死鎖,軟件看門狗會自動重啟系統(tǒng)或執(zhí)行其他預(yù)定義的操作。軟件看門狗通常用于嵌入式系統(tǒng)中,可以方便地進行編程和控制。硬件看門狗則是一種獨立的硬件設(shè)備,它與計算機主板上的芯片
    的頭像 發(fā)表于 04-16 15:10 ?703次閱讀