原子哥的系统滴答定时器SysTick 是用来做延时用的。可是有很多时候我们的定时器用完了,就有需要用要SysTick 来做定时器做中断。下面给大伙程序,这里初始化完,每过设定时间4ms(/时间加载)中设定) 就会进入一次中断,结合原子哥的延时程序一看就明
SysTick_init(u8 SYSCLK)
{ u16 fac_us,fac_ms;
SysTick->CTRL&=0xfffffffb; //bit2清空,选择外部时钟 HCLK/8
fac_us=SYSCLK/8;
fac_ms=(u16)fac_us*1000;
SysTick->LOAD=(u32)4*fac_ms; //时间加载(SysTick->LOAD为24bit)
SysTick->VAL =0x00; //清空计数器
SysTick->CTRL |=(1<<0 |1<<1); //开始倒数
/* Function successful */
}
void SysTick_Handler() //4ms中断
{
/* 在这里写上你要的中断程序,比如LED反复点亮之类的*/
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
读CTRL,可以清除中断标志
一周热门 更多>