OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4642|回复: 0

窗口看门狗实验遇到的问题

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2013-9-1
在线时间
0 小时
发表于 2013-11-2 23:06:44 | 显示全部楼层 |阅读模式

void WWDG_Init(u8 tr,u8 wr,u32 fprer)
{
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);  //   WWDG时钟使能

 WWDG_CNT=tr&WWDG_CNT;   //初始化WWDG_CNT.  
 WWDG_SetPrescaler(fprer);////设置IWDG预分频值

 WWDG_SetWindowValue(wr);//设置窗口值

 WWDG_Enable(WWDG_CNT);  //使能看门狗 , 设置 counter .     //第一句            

 WWDG_ClearFlag();//清除提前唤醒中断标志位     //第二句

 WWDG_NVIC_Init();//初始化窗口看门狗 NVIC   

 WWDG_EnableIT(); //开启窗口看门狗中断      //第三句  问题1:这3句话位置调换调试结果就不正常,第2句话很关键,不能去掉和随意放置
}
//重设置WWDG计数器的值
void WWDG_Set_Counter(u8 cnt)
{
    WWDG_Enable(cnt);//使能看门狗 , 设置 counter . 
}
//窗口看门狗中断服务程序
void WWDG_NVIC_Init()
{
 NVIC_InitTypeDef NVIC_InitStructure;
 NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn;    //WWDG中断
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;   //抢占2,子优先级3,组2 
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //抢占2,子优先级3,组2 
 NVIC_Init(&NVIC_InitStructure);//NVIC初始化   //问题2:这里为什么缺省“NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;”这句话也可以?
}
问题3:
void WWDG_Configuration(void)
{
 WWDG_SetPrescaler(WWDG_Prescaler_8);        // 8M/4096/8=244Hz,4ms递减一个数值。
 WWDG_SetWindowValue(0x5f);            //7f-40=3f=63,,63*4=252ms,1s内复位四次。
 WWDG_Enable(0x7f);
 WWDG_ClearFlag();                              这句话为什么要加,
 WWDG_EnableIT();
}
这是其他帖子分析的,为什么PCLK1是8M,不应该是36MHz吗?如果是36MHz,每秒钟闪烁就不是5次左右了?
问题4:使能调试挂起看门狗,该如何操作?
原子大哥辛苦了,致敬!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-9 10:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表