我是通过stm32里边的定时器来实现定时一段时间,比如说倒计时多长时间,很多人会考虑用delay函数,但delay的话程序无法执行其他语句,会一直处在delay()函数内,这样便会影响其他语句执行。
话不多说上代码:
#include "timer.h"
#include "stm32f10x.h"
#include "delay.h"
void TIM6_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct3;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);
TIM_TimeBaseInitStruct3.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInitStruct3.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStruct3.TIM_Period=arr;
TIM_TimeBaseInitStruct3.TIM_Prescaler=psc;
TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE);
NVIC_InitStruct.NVIC_IRQChannel=TIM6_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=2;
NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStruct);
TIM_TimeBaseInit(TIM6,&TIM_TimeBaseInitStruct