这是江协科技的延时函数,
//SysTick->LOAD = 72 * xus;
这条函数用的是72M的频率,只有8Mhz的外部晶振,但在程序里没有配置时钟频率的代码,为什么可以直接用72相乘?
void Delay_us(uint32_t xus)
{
SysTick->LOAD = 72 * xus; //设置定时器重装值
SysTick->VAL = 0x00; //清空当前计数值
SysTick->CTRL = 0x00000005; //设置时钟源为HCLK,启动定时器
while(!(SysTick->CTRL & 0x00010000)); //等待计数到0
SysTick->CTRL = 0x00000004; //关闭定时器
}
|