CubeIDE+HAL库 STM32 控制流水灯

int state = 0;

while (1)
  {
	  if (state<=2 || state == 5)
		  {
		    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET);
		  }
	  else
	  {
		    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
	  }
	  if (state>=1 && state<=3)
		  {
			  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);
		  }
	  else
		  {
			  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
		  }

	  if (state>=2 && state<=5)
		  {
			  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET);
		  }
	  else
		  {
			  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);
		  }
	    HAL_Delay(200);

	  state++;
	  if (state>5)
		  state=0;

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}
uint8_t keyboard = 0;

  while (1)
  {

	  if (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_13)== GPIO_PIN_RESET)  //读取输入值,按键状态,PB13==0
	  {
		 keyboard++;//按键+1
		 while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_13) == GPIO_PIN_RESET);//每按一次,按键+1
		 if(keyboard>7)//按6次后,清零
			 keyboard=0;
	  }

	  if ((keyboard>=1&&keyboard<=3) || keyboard == 6)//红灯(PA2)状态
		  {	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET);		  }//读取输出值,红灯(PA2==0) 亮
	  else
	      {	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);		  }

	  if (keyboard>=2 && keyboard<=4)//绿灯(PA1)状态
		  {	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);		  }//读取输出值,绿灯(PA1==0) 亮
	  else
		  {	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);		  }

	  if (keyboard>=3 && keyboard<=6)//蓝灯(PA0)状态
		  {	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET);		  }//读取输出值,蓝灯灯(PA0==0) 亮
	  else
		  {	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);		  }


  }

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值