我正在开发一个项目,该项目涉及使用微控制器板上的开关控制 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
}
}