STM32 V5 source code
guowenxue
2018-02-04 785deec23b4cb1e7c4c4d81eb808f195adb1d98a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/****************************************************************************
*   Copyright: (C)2014 Î人ÁèÔÆÇ¶ÈëʽʵÑéÊÒ www.emblinux.com
*      Author: GuoWenxue<guowenxue@gmail.com> QQ: 281143292
* Description: ·Ü¶·STM32v5¿ª·¢°åsystickºÍÑÓʱÏà¹Øº¯Êý£»
*   ChangeLog:
*        °æ±¾ºÅ     ÈÕÆÚ       ×÷Õß      ËµÃ÷
*        V1.0.0  2014.08.25  GuoWenxue   ·¢²¼¸Ã°æ±¾
****************************************************************************/
#include "stm32f10x.h"
#include "stm32v5_systick.h"
 
static __IO uint32_t s_delay_clocks;
 
/*
   SysTick_Config½«»á´ÓAHB×ÜÏß»ñȡʱÖÓ£¬¶øAHB×ÜÏßÓëϵͳºËÐÄʱÖÓÒ»ÖÂΪ72MHz.Ëü
     µÄÊäÈë²ÎÊýΪSystick½«Òª¼ÆÊ±µÄÂö³åÊý£¬¾­¹ýticks¸öÂö³åºó½«´¥·¢Öжϣ¬Öжϴ¦Àí
     ³ÌÐòÖн«ÖØÐ¼¼Êõ¡£ÓÉ´ËÎÒÃÇ¿ÉÒÔ¼ÆËã³ö¶¨Ê±µÄʱ¼ä£¬ÏÂÃæÎª¼ÆË㹫ʽ£º
     T=ticks*(1/f)   TΪҪ¶¨Ê±µÄ×Üʱ¼ä; ticksΪSysTick_Config()µÄÊäÈë²ÎÊý;1/f¼´Îª
     SysTickʹÓõÄʱÖÓÔ´µÄʱÖÓÖÜÆÚ£¬fΪ¸ÃʱÖÓÔ´µÄʱÖÓÆµÂÊ£¬Îª72MHz.
     ÔÚÏÂÃæµÄ³ÌÐòÖÐ, SystemCoreClock¼´ÎªÏµÍ³Ê±ÖÓ(f),ÕâÑù£º 
      T= (f/CLOCK_SECOND) * (1*f) = 1/CLOCK_SECOND
        ËùÒÔ£¬Èç¹ûÎÒÃÇÐèÒª1ms¶¨Ê±£¬Ö»ÐèÒª½«CLOCK_SECOND¶¨ÒåΪ1000;
              Èç¹ûÎÒÃÇÐèÒª1us¶¨Ê±£¬Ö»ÐèÒª½«CLOCK_SECOND¶¨ÒåΪ1000000;
*/
void sysclock_init(void)
{
   if (SysTick_Config(SystemCoreClock / CLOCK_CONF_SECOND)) 
     {
        while(1);
     }
}
 
void SysTick_Handler(void)
{
  if (s_delay_clocks != 0x00)
  { 
    s_delay_clocks--;
  }
}
 
void msleep(__IO uint32_t ms)
{
   s_delay_clocks = ms;
     
     while(s_delay_clocks != 0);
}