程序用到STM32的TIM1功能,在用MDK软件调试时,发现在运行到TIM1_DeInit()时MDK软件卡死了,单步运行进一步发现程序跳到如下(1)时卡死了,刚开始怀疑是哪个外设时钟没配置好,但检查了好几遍都没发现问题所在。郁闷好久……后来用硬件仿真调试时,这个问题就没了。不得所解,难道这个不能用软件调试??怀疑自己的MDK软件有哪些地方没配置好。 不知道大家有没有遇到过类似的问题,可以讨论讨论。 ………………………… void TIM1_DeInit(void) { RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, ENABLE);//跳到这一行 RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, DISABLE); } ……………… void RCC_APB2PeriphResetCmd(u32 RCC_APB2Periph, FunctionalState NewState) { /* Check the parameters */ assert(IS_RCC_APB2_PERIPH(RCC_APB2Periph)); assert(IS_FUNCTIONAL_STATE(NewState)); if (NewState != DISABLE) { RCC->APB2RSTR |= RCC_APB2Periph;//(1)接着程序到这就卡死了 ,原因??? } else { RCC->APB2RSTR &= ~RCC_APB2Periph; } }
|