SysTick
1 void Delay(u32 nTime) 2 { 3 TimingDelay = nTime; 4 5 while(TimingDelay != 0); 6 }
1 void SysTick_Handler(void) 2 { 3 if (TimingDelay != 0x00) 4 { 5 TimingDelay--; 6 } 7 }
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 }
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库函数:
- SysTick_CLKSoureConfig 设置SysTick时钟源
- SysTick_SetReload 设置SysTick重装载值
- SysTick_CounterCmd 使能或者失能SysTick计数器
- SysTick_ITConfig 使能或者失能SysTick中断
- SysTick_GetCounter 获取SysTick计数器的值
- SysTick_GetFlagStatus 检查指定的SysTick标志位设置是否
浙公网安备 33010602011771号