原创 STM32窗口看门狗使用(WWDG)

2008-12-24 09:01 6409 8 11 分类: MCU/ 嵌入式

    上次发现WWDG不能用,准确的说是不能仿真.所以就没有弄了.前几天,没事干的时候把它再弄了一下,突然发现keil的仿真中WWDG->CR寄存器的值能动了,一下就来劲了.不过后来发现又不行了.于是又看书,看究竟是怎么搞的.后来发现在寄存器描述里面提到,在发生wwdg复位之后,一定要硬件复位,EWI标志才会清除,不过这个和WWDG->CR计数器的关系不大,看资料说WWDG->CR是只要开启,就会进行自减计数的.


   keil不知道能不能仿真硬件复位.不过照这样的仿真结果,应该是keil的仿真有问题的.所以就按IWDG的思路写了代码:


int main(void)//GPIO
{       
    Stm32_Clock_Init();//系统时钟设置      
    led_init();
    delay_init(72);//72M系统时钟
    delay_ms(300);
    wwdg_init();   //配置并使能WWDG   
    while (1)
    {       
         LED0_SET(0);
         delay_us(500000);//在这里系统重启          
    }     
}
 


直接刷stm32.发现LED亮一下就不亮了,估计是发生了重启,然后我的BOOT设置还是在串口下载模式,于是吧boot改了,发现整个就运行起来了,灯一闪一闪的...


     证明我的WWDG设置是正确的,而keil仿真,则出不了结果.所以提醒网友在使用wwdg的时候,keil仿真出不了,但是实际只要你的寄存器设置正确了,还是会跑的.也说明了一个仿真,不是万能的,啥都得实际验证才能算数.想起毛爷爷一句话:实践是检验真理的唯一标准.


附上wwdg的设置头函数


#ifndef __WWDG_H
#define __WWDG_H
//WWDG使用
//下载完后,把BOOT0改为低电平,
//并按复位键后,才能看到现象!!
//正点原子@SCUT
//2008/12/19
//V1.0
//复位时间59ms左右.
void wwdg_init(void)
{
 RCC->APB1RSTR|=1<<11; //复位wwdg
 RCC->APB1RSTR&=~(1<<11);


 RCC->APB1ENR|=1<<11; //使能wwdg时钟


 WWDG->CFR|=3<<7;        //PCLK1/4096再8分频


 WWDG->CFR|=80;      //设定窗口值为80      
 WWDG->CR|=1<<7;   //使能WWDG看门狗
}
#endif 


 


    

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户506238 2009-3-12 13:04

客气,我也是别人指点的

liujun6037_345432000 2009-3-5 16:26

谢谢兄弟指教!

用户506238 2009-3-5 13:08

我试了一下,可以进行多次软件仿真,你的问题原因就是在退出软件仿真前要把所打开的Window Watchdog 窗口以及GPIO窗口关掉,然后再退出软件仿真,否则不关掉这些窗口,就直接退出仿真,下次再使用软件仿真时WWDG就不能运行了。
相关推荐阅读
正点原子 2013-05-17 23:47
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第六十一章 战舰STM32开发板综合实验(标准例程终结篇)
   第六十一章 战舰STM32开发板综合实验        前面已经给大家讲了55个实例了,本章将设计一个综合实例,作为本指南的最后一个实验 ,该实验向大家展示了STM...
正点原子 2013-05-03 23:02
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第六十章 UCOSII实验3-消息队列、信号量集和软件定时器
   第六十章 UCOSII实验3-消息队列、信号量集和软件定时器   上一章,我们学习了UCOSII的信号量和邮箱的使用,本章,我们将学习消息队列、信号量集和软件定时器...
正点原子 2013-05-03 20:42
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第五十七章 ENC28J60网络实验
第五十七章 ENC28J60网络实验   本章,我们将向大家介绍ALIENTEK ENC28J60网络模块及其使用。本章,我们将使用ALIENTEK ENC28J60网络模块...
正点原子 2013-05-01 23:00
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第五十九章 UCOSII实验2-信号量和邮箱
第五十九章 UCOSII实验2-信号量和邮箱      上一章,我们学习了如何使用UCOSII,学习了UCOSII的任务调度,但是并没有用到任务间的同步与通信,本章我们将学习两个最基本的...
正点原子 2013-04-30 10:55
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第五十八章 UCOSII实验1-任务调度
  第五十八章 UCOSII实验1-任务调度      前面我们所有的例程都是跑的裸机程序(裸奔),从本章开始,我们将分3个章节向大家介绍UCOSII(实时多任务操作系...
正点原子 2013-04-26 23:16
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第五十七章 ENC28J60网络实验
 第五十七章 ENC28J60网络实验  本章,我们将向大家介绍ALIENTEK ENC28J60网络模块及其使用。本章,我们将使用ALIENTEK ENC28J60网络模块和uIP 1...
我要评论
3
8
关闭 站长推荐上一条 /3 下一条