SysTick

1 void Delay(u32 nTime)
2 { 
3   TimingDelay = nTime;
4 
5   while(TimingDelay != 0);
6 }
void Delay(u32 nTime)

 

1 void SysTick_Handler(void)
2 {
3   if (TimingDelay != 0x00)
4   { 
5     TimingDelay--;
6   }
7 }
SysTick_Handler

 

 1 void NVIC_Configuration(void)
 2 {
 3   NVIC_InitTypeDef NVIC_InitStructure;
 4 
 5     /* Configure one bit for preemption priority */
 6     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);           //ÉèÖÃÖжÏ×éΪ2
 7       
 8     /* Enable the EXTI0_IRQn Interrupt */
 9     NVIC_InitStructure.NVIC_IRQChannel = SysTick_IRQn;        //ÖжÏÏß0
10     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //ÇÀÕ¼ÓÅÏȼ¶Îª2
11     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;        //ÏìÓ¦ÓÅÏȼ¶Îª0
12     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;            //ÔÊÐíEXTI0_IRQnÖжÏ
13     NVIC_Init(&NVIC_InitStructure);
14 }
NVIC_Configuration

 

1 void SysTick_Init(void)
2 {
3     
4     /* SystemCoreClock / 1000    1msÖжÏÒ»´Î
5      * SystemCoreClock / 100000     10usÖжÏÒ»´Î
6      * SystemCoreClock / 1000000 1usÖжÏÒ»´Î
7      */
8 while(SysTick_Config( SystemCoreClock  / 1000));    //Systick ÅäÖÃÑÓʱn*ms    
9 }
SysTick_Init()

 

SysTick库函数:

  • SysTick_CLKSoureConfig     设置SysTick时钟源
  • SysTick_SetReload       设置SysTick重装载值
  • SysTick_CounterCmd      使能或者失能SysTick计数器
  • SysTick_ITConfig        使能或者失能SysTick中断
  • SysTick_GetCounter      获取SysTick计数器的值
  • SysTick_GetFlagStatus      检查指定的SysTick标志位设置是否

 

posted @ 2020-02-26 10:51  Jason森  阅读(299)  评论(0)    收藏  举报