×
单片机 > 单片机程序设计 > 详情

STM32——滴答定时器

发布时间:2020-08-21 发布时间:
|

时钟作为芯片的心脏,芯片依靠时钟维持运动的状态。

stm32的延时函数,依赖滴答定时器,独立的提供延时。

滴答定时器:

时钟是由HCLK经过8分频来作为小心脏的。假设HCLK时钟为72MHz,8分频后,滴答定时器频率为9MHz,即一个时钟周期为1/9us。

在我们使用滴答定时器进行us定时时,需要修改fac_us的值,假设设定HCLK时钟为72MHz,则fac_us应该设定为9,使delay_us()保持1us。

以下为SysTick定时器us的延时函数。

//nus为要延时的us数.

void delay_us(u32 nus)

{

u32 temp;      

SysTick->LOAD=nus*fac_us; //时间加载    

SysTick->VAL=0x00;         //清空计数器

SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //开始倒数  

do

{

temp=SysTick->CTRL;

}while((temp&0x01)&&!(temp&(1<<16))); //等待时间到达   

SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //关闭计数器

SysTick->VAL =0X00;       //清空计数器  

}


关键字:STM32  滴答定时器 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址