| 
 
| 我使用的是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);
 ……
 }
 
 
 | 
 |