您的代码使用了中断处理函数,但我的想法是能否不用中断处理函数来实现延时?就像CH32V307EVT例程里面的:
void Delay_Us(uint32_t n)
{
? uint32_t i;
? SysTick->SR &= ~(1 << 0);
? i = (uint32_t)n * p_us;
? SysTick->CMP = i;
? SysTick->CTLR |= (1 << 4) | (1 << 5) | (1 << 0);
? while((SysTick->SR & (1 << 0)) != (1 << 0)) ;
? SysTick->CTLR &= ~(1 << 0);
}
这个里面使用的是SysTick,我的想法是能否用TIM6代替SysTick来完成延时的功能?
或者说,能否直接操作TIM6的寄存器来实现延时功能?谢谢。
您的代码使用了中断处理函数,但我的想法是能否不用中断处理函数来实现延时?就像CH32V307EVT例程里面的:
void Delay_Us(uint32_t n)
{
? uint32_t i;
? SysTick->SR &= ~(1 << 0);
? i = (uint32_t)n * p_us;
? SysTick->CMP = i;
? SysTick->CTLR |= (1 << 4) | (1 << 5) | (1 << 0);
? while((SysTick->SR & (1 << 0)) != (1 << 0)) ;
? SysTick->CTLR &= ~(1 << 0);
}
这个里面使用的是SysTick,我的想法是能否用TIM6代替SysTick来完成延时的功能?
或者说,能否直接操作TIM6的寄存器来实现延时功能?谢谢。
举报