STM32 F407 用TIM9实现1us延时

2019-07-20 06:39发布

STM32F407的定时器1,2,3,4,5,8都被用了现在有一个芯片需要硬延时来实现读写 可使用定时器9 定时时间不能精确到1us,希望看到的朋友多多帮忙。
void TIM9_Init_Query(void)
{  
    TIM_TimeBaseInitTypeDef TIME;  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM9,ENABLE);  
    TIME.TIM_Period=1;     
    TIME.TIM_Prescaler=1;
    TIME.TIM_ClockDivision=0;  
    TIME.TIM_CounterMode=TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM9,&TIME);         
}


void _delay_us(u32 nTime)
{
    u16 counter=nTime&0xffff;  
    TIM_Cmd(TIM9,ENABLE);  
    TIM_SetCounter(TIM9,counter);  

    while(counter>1)  
    {  
        counter=TIM_GetCounter(TIM9);  
    }  
    TIM_Cmd(TIM9,DISABLE);  
}

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