drju 发表于 2019-1-7 18:38:18

STM8AF6226TCSS仿真一直SWIM复位

    大家有没碰STM8AF6226TCSS仿真时一直SWIM复位,外围只接复位电位路。
   另外定时器也进不了中断,时间设很短也不行。
void main(void)
{
    u32 i;
   
    WWDG->CR = 0X7F;       //关闭看门狗
    /* Clock Configuration */
    CLK_Config();
      
    /* GPIO Configuration */
    GPIO_Config();
    /* Check if the system has resumed from IWDG reset */
temp = RST->SR;

if (RST_GetFlagStatus(RST_FLAG_EMCF) != RESET)
{
RST_ClearFlag(RST_FLAG_EMCF);
}
else if (RST_GetFlagStatus(RST_FLAG_SWIMF) != RESET)
{
RST_ClearFlag(RST_FLAG_SWIMF);
}
else if (RST_GetFlagStatus(RST_FLAG_ILLOPF) != RESET)
{
RST_ClearFlag(RST_FLAG_ILLOPF);
}
else if (RST_GetFlagStatus(RST_FLAG_IWDGF) != RESET)
{
RST_ClearFlag(RST_FLAG_IWDGF);
}
else if (RST_GetFlagStatus(RST_FLAG_WWDGF) != RESET)
{
RST_ClearFlag(RST_FLAG_WWDGF);
}
// /* Get measured LSI frequency */
// LsiFreq = LSIMeasurment();
/* IWDG Configuration */
// IWDG_Config();

    TIM6_DeInit();
    TIM6_TimeBaseInit(TIM6_PRESCALER_2, 124);
    TIM6_ARRPreloadConfig(ENABLE);
    TIM6_ITConfig(TIM6_IT_UPDATE, ENABLE);
    TIM6_ClearITPendingBit(TIM6_IT_UPDATE);
    TIM6_Cmd(DISABLE);
    LED_OFF;
   
    enableInterrupts();
    /* Infinite loop */
    while (1)
    {
      /* Reload IWDG counter */
//   IWDG_ReloadCounter();
//   WWDG_SWReset();
   
//for(i=0; i<20000; i++)
      nop();
//      LED_ON;
//      for(i=0; i<20000; i++)
      nop();
//      LED_OFF;
    }
}

butterflyspring 发表于 2019-1-22 16:16:50

检查一下optionbyte 中的独立看门狗启动选项是否使能。另外窗口看门狗不用去配置,默认就是关闭的。
定时器6 的 “TIM6_Cmd(DISABLE);”,看起来是关闭状态,打开使能试试看:)

drju 发表于 2019-1-24 18:24:17

谢谢解答!看门狗都是关闭了,同样的程序用IAR不会SWIM复位,就不管它了,估计是STVD哪里配置的问题。:)
页: [1]
查看完整版本: STM8AF6226TCSS仿真一直SWIM复位