使用开关控制 LED - 颜色循环问题

问题描述 投票:0回答:0

我正在开发一个项目,该项目涉及使用微控制器板上的开关控制 LED。基本思想是在开关打开时打开 LED,在开关关闭时关闭 LED,并且,这是棘手的部分,每次再次打开开关时都会循环显示不同的颜色。

我正在使用带有 Nucleo 板的 STMCubeIDE。

我已成功使用以下代码通过开关打开和关闭 LED:

  HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3); // Red
  HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); // Green
  HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4); // Blue

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
      // Check to see if the switch is pressed.
      if (HAL_GPIO_ReadPin(Toggle_Switch_GPIO_Port, Toggle_Switch_Pin) == GPIO_PIN_SET) {

          // Red
          __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3, 230); // Red
          __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, 0); // Green
          __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4, 0); // Blue

      } else {
          __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3, 0); // Red
          __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, 0); // Green
          __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4, 0); // Blue
      }

  }
c arduino microcontroller gpio nucleo
© www.soinside.com 2019 - 2024. All rights reserved.