分为使用操作系统和不使用操作系统
一、不使用操作系统
1.执行指令耗时间,不能实现可打断,浪费MCU资源,如下面的延时函数 delay_ms
void delay_ms(u16 nms)
{
while(repeat)
{
repeat--;//重复执行自减指令
}
}
2.使用定时器进行计时,可以实现延时过程可打断,不浪费MCU资源
定时器初始化,根据时钟去设置一次定时的时间
void Timer1_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //使能时钟
TIM_TimeBaseStructure.TIM_Period = arr; //设置自动重装周期
TIM_TimeBaseStructure.TIM_Prescaler =(psc-1); //预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; //重复计数设置
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //参数初始化
TIM_ClearFlag(TIM1,