L471用cubeMX5.0生成的用SYSTICK延时点灯的工程,卡死在一个地方
这是LL库的延时函数,我仿真看了systick的寄存器,是能,时钟源,重装值都没问题,我没用中断所以没有是能中断,但是调用延时函数卡在一个地方!void LL_mDelay(uint32_t Delay)
{
__IO uint32_ttmp = SysTick->CTRL;/* Clear the COUNTFLAG first */
uint32_t tmpDelay = Delay;
/* Add this code to indicate that local variable is not used */
((void)tmp);
/* Add a period to guaranty minimum wait */
if(tmpDelay < LL_MAX_DELAY)
{
tmpDelay++;
}
while (tmpDelay != 0U)
{
if((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) != 0U)//卡在这儿!!!!!!!1
{
tmpDelay--;
}
}
}
求助,,呜呜呜
本帖最后由 toofree 于 2018-12-28 13:58 编辑
单步调试看一下,在线寄存器查看,SYSTICK的使能开启了没有,计数器走不走?
CubeMX 5.0的LL延时函数,需要RCC LL库,GPIO最好也设置为LL库。CubeMX5.0的函数有点问题,特别是最新版本的库 为什么不直接用 HAL_Delay 或者FreeRTOS中的osDelay???:L
页:
[1]