sinfly2014 发表于 2014-3-13 17:14:37

求STM8S105 看门狗程序?

请问各位大侠有做过STM8S105 看门狗测试程序?要求不要用库函数写的程序,有请分享一份给大家,谢谢!

发表于 2014-3-14 09:56:38

RE:求STM8S105 看门狗程序?

WWDG_CR设置开启看门狗,并设置看门狗喂狗时间。一般都写入0xFF
WWDG_WR来重置看门狗的值。防止看门狗复位。一般都写入0x7F

sinfly2014 发表于 2014-3-14 09:58:34

RE:求STM8S105 看门狗程序?

因为了是菜鸟,有劳大哥帮我写个完整的吗?谢谢了!

发表于 2014-3-14 11:27:59

RE:求STM8S105 看门狗程序?

配置如下:
WWDG->CR= WWDG_CR_WDGA | WWDG_CR_T6 | 0x7F;// wwdog configuration register (max refresh period ~ 397 ms )
WWDG->WR= 0x70;        // wwdog window register (illegal window 15 steps ~ 92 ms)
喂狗的时候:
WWDG->CR= (0x7F | WWDG_CR_WDGA | WWDG_CR_T6);        // correct wwdog refresh at the end of the legal window

无薪税绵 发表于 2018-3-8 14:53:24

给个参考你吧:

///////////////调试独立看门狗///////////////
//PB5 led 输出
//1.02s 复位一次 led闪烁一次
////////////////////////////////////////////
/*#include "STM8S103f3p.h"
////////////////IO初始化////////////////////
void init_gpio(void)
{
        //将pb5 pb4设置成推挽输出,连接在led上
        PB_DDR = 0x30;             //数据方向
        PB_CR1 = 0x30;       // 上拉、悬空
        PB_CR2 = 0x00;       

        //PD5-TXD PD6-RXD
        //PD_DDR = 0x20;             //数据方向
        //PD_CR1 = 0xff;       // 上拉、悬空
        //PD_CR2 = 0x00;
}
////////////////延时程序////////////////////
void delay(unsigned int ms)
{
        unsigned char i;
        while(ms!=0)
        {
                for(i=0;i<250;i++);
                for(i=0;i<75;i++);
                ms--;
}
}
//看门狗配置
void IWDG_Init(void)
{
        IWDG_KR = 0xCC; //启动IWDG
IWDG_KR = 0x55; //解除 PR 及 RLR 的写保护
IWDG_RLR = 0xff; //看门狗计数器重装载数值      
IWDG_PR = 0x06; //分频系数为64 1.02s
IWDG_KR = 0xAA; //刷新IDDG,避免产生看门狗复位,同时恢复 PR 及 RLR 的写保护状态       
}
main()
{
        init_gpio();
        IWDG_Init();
        PB_ODR^=0x20;
        while(1)
        {
                //PB_ODR^=0x20;
                //IWDG_KR = 0xAA; //刷新IDDG,避免产生看门狗复位
        }
}
页: [1]
查看完整版本: 求STM8S105 看门狗程序?