stm32f0_sys_stick
void us_sleep(uint32_t time)
{
uint32_t temp;
SysTick->LOAD = 6 * time;
SysTick->VAL = 0X00;//清空计数器
SysTick->CTRL = 0X01;//使能,减到零是无动作,采用外部时钟源
do
{
temp = SysTick->CTRL;//读取当前倒计数值
} while ((temp & 0x01) && (!(temp&(1 << 16))));//等待时间到达
SysTick->CTRL = 0x00; //关闭计数器
SysTick->VAL = 0X00; //清空计数器
}
- SysTick->LOAD = 6 * time; 此处的6: 48M/8M=6 即SysTick 以 HCLK/8 作为运行时钟(通过配置CTRL控制)。