系统滴答定时器SysTick 中断程序 中断用法

2019-08-20 15:51发布

原子哥的系统滴答定时器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反复点亮之类的*/
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
stm32你是我的菜噢
1楼-- · 2019-08-23 06:19
本帖最后由 stm32你是我的菜噢 于 2016-11-29 22:50 编辑

可以,这也是一个方法啊
胡大兴
2楼-- · 2019-08-23 07:17
进入中断好像出不来了
stm32你是我的菜噢
3楼-- · 2019-08-23 09:16
本帖最后由 stm32你是我的菜噢 于 2016-12-8 16:20 编辑

这个我做过一个例程的,需要的朋友找我要吧
ibelieveit521
4楼-- · 2019-08-23 13:36
 精彩回答 2  元偷偷看……
zkqiu
5楼-- · 2019-08-23 16:00
ibelieveit521 发表于 2017-1-17 09:15
解决了吗,为什么我用的TimingDelay_Decrement函数都调用不到,只在Delay那里死循环

解决了吗?我也是在delay里面死循环了
xyz1015231411
6楼-- · 2019-08-23 18:20
我也遇到这样的情况,用查询写的可以,用中断就是不行死循环在DELAY那里

一周热门 更多>