论坛元老
 
- 积分
- 3780
- 金钱
- 3780
- 注册时间
- 2015-4-26
- 在线时间
- 768 小时
|
[mw_shl_code=applescript,true]void delay_us(u16 nus)
{
OS_ERR err;
RCC_ClocksTypeDef rccclk;
u32 ticks,t_now,t_old,t_cnt = 0;
u8 HCLK_freq;//HCLK 的时钟频率
RCC_GetClocksFreq(&rccclk);
HCLK_freq = (u8)(rccclk.HCLK_Frequency / 1000000);
ticks = (u32)HCLK_freq * (u32)nus;//获得计数次数
OSSchedLock(&err);//禁止任务调度
t_old = SysTick -> VAL;//当前计数
for(;;)
{
t_now = SysTick -> VAL;
if(t_old != t_now)
{
t_cnt ++;
t_old = t_now;
}
if(t_cnt >= ticks)
break;//延时完毕
}
OSSchedUnlock(&err);//开启任务调度
}[/mw_shl_code]
|
|