STM8S看门狗配置失败的原因

该代码段展示了如何配置STM8S207的看门狗以实现1000毫秒的复位时间。首先,需要启用看门狗功能,然后设置预分频器和重载寄存器。STM8S207的配置过程与STM32F103不同,需先使能看门狗。此外,还提供了一个软复位函数,通过设置不同的预分频器和重载值来达到不同的复位时间。
摘要由CSDN通过智能技术生成

配置STM8S207的看门狗,必须先使能看门狗功能模块,然后再配置其参数,这个和STM32F103不同。

//函数功能:配置看门狗复位时间为1000毫秒
void IWDG_Config(void)
{
  IWDG_Enable();//配置看门狗,必须先使能看门狗功能模块,这个和STM32F103不同
  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
  //允许写访问预分频器和重载寄存器
  //Enable the access to the IWDG registers
  IWDG_SetPrescaler(IWDG_Prescaler_256);
  //设置独立看门狗的预分频器值为256
  //独立看门狗定时器使用LSI内部RC时钟源128KHz
  //时钟源128KHz先经过固定2分频,再经过256分频,因此每个脉冲时间1*2*256/128000=0.004秒=4毫秒
  IWDG_SetReload(250);
  //设置独立看门狗重载值为250,重载值(8位寄存器 最大255)
  //每个脉冲时间4毫秒,因此独立看门狗重装时间要小于4*250=1000毫秒
  IWDG_ReloadCounter();//喂狗,Refresh IWDG
}
//函数功能:看门狗令CPU复位
void SoftReset(void)
{
  __disable_interrupt();//关闭所有中端
  IWDG_Enable();//配置看门狗,必须先使能看门狗功能模块,这个和STM32F103不同
  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
  //允许写访问预分频器和重载寄存器
  //Enable the access to the IWDG registers
  IWDG_SetPrescaler(IWDG_Prescaler_32);
  //设置独立看门狗的预分频器值为32
  //独立看门狗定时器使用LSI内部RC时钟源128KHz
  //时钟源128KHz先经过固定2分频,再经过4分频,因此每个脉冲时间1*2*32/128000=0.0005秒=0.5毫秒
  IWDG_SetReload(0x06);
  //设置独立看门狗重载值为0x06
  //每个脉冲时间0.5毫秒,因此独立看门狗重装时间要小于0.5*6=3毫秒
  IWDG_ReloadCounter();//喂狗,Refresh IWDG
             
  while(1);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值