controller-pcba/User/board/src/leds.c

113 lines
3.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "leds.h"
unsigned char tim_led_state = 0;
/**
* @brief 打开指定的LED灯
*
* 根据传入的LED灯枚举值打开对应的LED灯。
*
* @param io LED灯的枚举值表示需要打开的LED灯。
*/
void leds_on(leds_e io)
{
switch (io)
{
case LEDS2_RED:
HAL_GPIO_WritePin(LED2_R_GPIO_Port, LED2_R_Pin, GPIO_PIN_RESET);
break;
case LEDS2_GREEN:
HAL_GPIO_WritePin(LED2_G_GPIO_Port, LED2_G_Pin, GPIO_PIN_RESET);
break;
case LEDS2_YELLOW:
HAL_GPIO_WritePin(LED2_Y_GPIO_Port, LED2_Y_Pin, GPIO_PIN_RESET);
break;
case LEDS3_RED:
HAL_GPIO_WritePin(LED3_R_GPIO_Port, LED3_R_Pin, GPIO_PIN_RESET);
break;
case LEDS3_GREEN:
HAL_GPIO_WritePin(LED3_G_GPIO_Port, LED3_G_Pin, GPIO_PIN_RESET);
break;
case LEDS3_YELLOW:
HAL_GPIO_WritePin(LED3_Y_GPIO_Port, LED3_Y_Pin, GPIO_PIN_RESET);
break;
default:
break;
}
}
/**
* @brief 关闭指定的LED灯
*
* 根据传入的LED灯枚举值关闭对应的LED灯。
*
* @param io LED灯的枚举值
*/
void leds_off(leds_e io)
{
switch (io)
{
case LEDS2_RED:
HAL_GPIO_WritePin(LED2_R_GPIO_Port, LED2_R_Pin, GPIO_PIN_SET);
break;
case LEDS2_GREEN:
HAL_GPIO_WritePin(LED2_G_GPIO_Port, LED2_G_Pin, GPIO_PIN_SET);
break;
case LEDS2_YELLOW:
HAL_GPIO_WritePin(LED2_Y_GPIO_Port, LED2_Y_Pin, GPIO_PIN_SET);
break;
case LEDS3_RED:
HAL_GPIO_WritePin(LED3_R_GPIO_Port, LED3_R_Pin, GPIO_PIN_SET);
break;
case LEDS3_GREEN:
HAL_GPIO_WritePin(LED3_G_GPIO_Port, LED3_G_Pin, GPIO_PIN_SET);
break;
case LEDS3_YELLOW:
HAL_GPIO_WritePin(LED3_Y_GPIO_Port, LED3_Y_Pin, GPIO_PIN_SET);
break;
default:
break;
}
}
/**
* @brief 打开所有LED灯
*
* 该函数用于将所有LED灯打开。
*
* 通过将指定GPIO端口和引脚上的电平设置为低电平GPIO_PIN_RESET
* 从而打开相应的LED灯。
*/
void leds_on_all(void)
{
HAL_GPIO_WritePin(LED2_R_GPIO_Port, LED2_R_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED2_G_GPIO_Port, LED2_G_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED2_Y_GPIO_Port, LED2_Y_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED3_R_GPIO_Port, LED3_R_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED3_G_GPIO_Port, LED3_G_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED3_Y_GPIO_Port, LED3_Y_Pin, GPIO_PIN_RESET);
}
/**
* @brief 关闭所有LED灯
*
* 该函数用于将所有LED灯关闭。
*/
void leds_off_all(void)
{
HAL_GPIO_WritePin(LED2_R_GPIO_Port, LED2_R_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED2_G_GPIO_Port, LED2_G_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED2_Y_GPIO_Port, LED2_Y_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED3_R_GPIO_Port, LED3_R_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED3_G_GPIO_Port, LED3_G_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED3_Y_GPIO_Port, LED3_Y_Pin, GPIO_PIN_SET);
}
// void lan8720_reset(void)
// {
// LL_GPIO_ResetOutputPin(ETH_RESET_GPIO_Port, ETH_RESET_Pin);
// HAL_Delay(55);
// LL_GPIO_SetOutputPin(ETH_RESET_GPIO_Port, ETH_RESET_Pin);
// HAL_Delay(55);
// }