延时函数不对

2019-07-20 06:36发布

单片机型号:STM32F415VG,使用外部8M晶振,设置系统时钟为168M用原子哥的us级延时函数延时500us,但实测为1.5ms,这是为什么,哪里我没考虑到?
void delayus(u32 nus)
{
        u32 temp;
        SysTick->LOAD  = nus*21;
        SysTick->VAL   = 0x00;
        SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
        do
        {
                temp = SysTick->CTRL;
        }
        while((temp & 0x01)&& (!(temp & (1 << 16))));
        SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
        SysTick->VAL   = 0x00;
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。