wxhnh1992
wxhnh1992
2018-03-29 03:37

请问 使用stm32的NRST引脚复位和重新上电有什么区别???

5
  • stm32

我使用的是STM32F051,使用J-flash烧录完固件文件后,按键复位(NRST脚)后程序总是卡在Delay(),调试发现原来是systick的中断没有。但是如果烧录完固件后重新上电的话程序就可以正常运行。请问是什么原因???

/*systick初始化*/
void Systick_Init(void)
{
if (SysTick_Config(SystemCoreClock / 1000))//1ºÁÃë
{
/* Capture error */
while(1)
{}
}
}

/*systick中断函数,其实就是调用TimingDelay_Decrement,对TimingDelay做减
发现使用按键复位后,这个中断服务函数一直没有进入*/
void SysTick_Handler(void)
{
TimingDelay_Decrement();
}

void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}

/*延时函数*/
void Delay(__IO uint32_t nTime)
{
TimingDelay = nTime;

while(TimingDelay != 0)
{};

}

int main(void)
{

……

    Delay(300);
    ……

}

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

8条回答