用定时器做微妙延时注意事项
注意定时器来着APB1还是APB2,二者频率不一样,配置PSC要注意
(1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线
(2)通用定时器timer2-timer5,通用定时器timer12-timer14以及基本定时器timer6,timer7的时钟来源是APB1总线
我拿tim14去做微秒级延时PSC为167,一直读取不到dht11数据,真搞心态啊
tim14在apb1,频率是84
延时函数 可直接复制
#define DLY_TIM_Handle (&htim14)
void delay_us(uint32_t nus)
{__HAL_TIM_SET_COUNTER(DLY_TIM_Handle, 0);__HAL_TIM_ENABLE(DLY_TIM_Handle);while (__HAL_TIM_GET_COUNTER(DLY_TIM_Handle) < nus){}__HAL_TIM_DISABLE(DLY_TIM_Handle);
}