Systick时钟定时

发布时间: 2024-08-14
来源: 电子工程世界

主函数


 1 /* Note:Your choice is C IDE */

 2 #include 'stdio.h'

 3 #include 'led.h'

 4 void main()

 5 {

 6    SystemInit();//初始化系统,使得系统频率为72兆

 7    systick_init();//配置Systick,使得1ms产生中断

 8    led_gpio_init();

 9    while(1)

10    {

11    

12    GPIO_Setbits(GPIO,GPIO_Pin_15);

13    delay_ms(1000);//延时

14    GPIO_ResetBits(GPIO,GPIO_Pin_15);

15    delay_ms(1000);

16    }

17 }


time函数


 1 /* Note:Your choice is C IDE */

 2 #include 'stdio.h'

 3 /*

 4 *第一步:配置系统时钟 void SystemInit(void)

 5 *配置Systick  core_cm3.h

 6 *写SysTick中断处理函数

 7 *编写delay延迟函数

 8 */

 9 

10 _IO uint32_t TimeDelay;

11 

12 void systick_init(void)

13 {

14     //配置Systick重载值,系统时钟为72MHz

15     //设置72000,中断时间;72000*(1/72000000)=1ms

16     

17     if(SysTick_confing(72000)==1)

18     {

19         while(1);

20     }

21     /*

22     while(Systick_confing(72000)==1)

23     */

24 }

25 //中断函数

26 void TimingDelay_Decrement(void)

27 {

28     if(TimingDelay!=0x00)

29     {

30         TimingDelay--;    

31     }

32 }

33 

34 void sysTick_Handle()

35 {

36     

37 }

38 

39 //第四步

40 void delay_ms(_IO uint32_t nTime)

41 {

42     TimingDelay=ntime;//时钟滴答

43     while(TimingDelay!=0);

44 }


1 #ifndef _TIMER_H_

2 #define _TIMER_H_

3 #include 'stm32f10x.h'

6 extern _IO uint32_t TimingDelay;//生命外面的变量

7 void systick_init(void);

8 void delay_ms(_IO uint32_t nTime)

9 #endif


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。