求STM8S105 看门狗程序?
请问各位大侠有做过STM8S105 看门狗测试程序?要求不要用库函数写的程序,有请分享一份给大家,谢谢!RE:求STM8S105 看门狗程序?
WWDG_CR设置开启看门狗,并设置看门狗喂狗时间。一般都写入0xFFWWDG_WR来重置看门狗的值。防止看门狗复位。一般都写入0x7F
RE:求STM8S105 看门狗程序?
因为了是菜鸟,有劳大哥帮我写个完整的吗?谢谢了!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 给个参考你吧:
///////////////调试独立看门狗///////////////
//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]