能用,但是在某个中断里面调用时出现了错误(应该改优先级),类似的用滴答定时器进行微秒计时,要把滴答定时器优先级设为最高
84M定时器乖乖用了84个nop
使用普通定时器时注意定时器开启后,前两个周期定时是不准确的
void RCC_delay_us(uint32_t udelay)
{
__IO uint32_t Delay = udelay * 80 / 7;//(SystemCoreClock 80M)
do
{
__NOP();
}
while (Delay --);
}
定时器在初始化第一次使用时默认计数值可能不是要求的值(对第一次计数也要求的情况),可以用__HAL_TIM_SetCounter(&htim1, 250);