1、使用定时器控制LED闪烁
主要代码:
unsigned char flag = 0;//标志LED灯的状态 定义全局变量 申请空间要小
//时间到达就会调用该函数
//每隔100ms调用一次中断函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim == &htim2)//判断是否是定时器2
{
flag =! flag;//修改LED灯状态 0变1 1变0
}
}
HAL_TIM_Base_Start_IT(&htim2);//以中断形式打开定时器2,开始计数,时间到后溢出事件
while (1)
{
if(flag == 1)
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//点亮LED灯
else
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);//熄灭
}
运行结果:
STM32