你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
关闭看门狗,就是不初始化看门狗的意思吧;
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;
}