你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
独立看门狗的问题
[复制链接]
mrclp
提问时间:2016-4-21 11:04 /
Help ...用的是stm32f030f4p6,开了独立看门狗之后,仿真设置断点,硬件还是会自动复位是吧?
后面改了程序,都没有给看门狗初始化,设置中断后,硬件还是会自动复位去自己跑程序;还要怎么关闭看门狗?
赞
0
收藏
1
评论
4
分享
发布时间:2016-4-21 11:04
举报
请先
登录
后回复
4个回答
xmshao
回答时间:2016-4-21 16:09:04
a0a.1 32b0c
要重新修改代码,关闭看门狗。复位运行生效。
赞
0
评论
回复
支持
反对
mrclp
回答时间:2016-4-21 23:06:18
a0a.1 32b0c
xmshao 发表于 2016-4-21 16:09
要重新修改代码,关闭看门狗。复位运行生效。
关闭看门狗,就是不初始化看门狗的意思吧;
赞
0
评论
回复
支持
反对
damiaa
回答时间:2017-2-16 13:01:51
a0a.1 32b0c
本帖最后由 damiaa 于 2017-2-16 13:05 编辑
IWDGInit(); //初始化看门狗
IWDG_ReloadCounter();//喂狗
如果你初始化启动了看门狗,定期喂狗是必须的。否则就复位了。
如果你不初始化启动看门狗,就没必要喂狗。只是在程序跑飞后不能复位重新启动。
看门狗主要是为了 程序跑飞后能复位重新启动
void IWDGInit(void)
{
/* IWDG timeout equal to 250 ms (the timeout may varies due to LSI frequency
dispersion) */
/* Enable write access to IWDG_PR and IWDG_RLR registers */
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
/* IWDG counter clock: LSI/32 */
IWDG_SetPrescaler(IWDG_Prescaler_32);
/* Set counter reload value to obtain 250ms IWDG TimeOut.
Counter Reload Value = 250ms/IWDG counter clock period
= 250ms / (LSI/32)
= 0.25s / (LsiFreq/32)
= LsiFreq/(32 * 4)
= LsiFreq/128
*/
//IWDG_SetReload(LsiFreq/128);
IWDG_SetReload(40000/128);
/* Reload IWDG counter */
IWDG_ReloadCounter();
/* Enable IWDG (the LSI oscillator will be enabled by hardware) */
IWDG_Enable();
}
oid IWDG_ReloadCounter(void)
{
IWDG->KR = KR_KEY_RELOAD;
}
赞
0
评论
回复
支持
反对
IC销售工程师
回答时间:2017-2-18 09:33:08
a1024a.1 32b0c
围观
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
关闭看门狗,就是不初始化看门狗的意思吧;
IWDGInit(); //初始化看门狗
IWDG_ReloadCounter();//喂狗
如果你初始化启动了看门狗,定期喂狗是必须的。否则就复位了。
如果你不初始化启动看门狗,就没必要喂狗。只是在程序跑飞后不能复位重新启动。
看门狗主要是为了 程序跑飞后能复位重新启动
void IWDGInit(void)
{
/* IWDG timeout equal to 250 ms (the timeout may varies due to LSI frequency
dispersion) */
/* Enable write access to IWDG_PR and IWDG_RLR registers */
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
/* IWDG counter clock: LSI/32 */
IWDG_SetPrescaler(IWDG_Prescaler_32);
/* Set counter reload value to obtain 250ms IWDG TimeOut.
Counter Reload Value = 250ms/IWDG counter clock period
= 250ms / (LSI/32)
= 0.25s / (LsiFreq/32)
= LsiFreq/(32 * 4)
= LsiFreq/128
*/
//IWDG_SetReload(LsiFreq/128);
IWDG_SetReload(40000/128);
/* Reload IWDG counter */
IWDG_ReloadCounter();
/* Enable IWDG (the LSI oscillator will be enabled by hardware) */
IWDG_Enable();
}
oid IWDG_ReloadCounter(void)
{
IWDG->KR = KR_KEY_RELOAD;
}