diff --git a/assets/User_code/device/led.c b/assets/User_code/device/led.c index 9ae734d..8447df2 100644 --- a/assets/User_code/device/led.c +++ b/assets/User_code/device/led.c @@ -12,31 +12,22 @@ /* Private macro ------------------------------------------------------------ */ /* Private typedef ---------------------------------------------------------- */ -DEVICE_LED_t LED_Map={ - BSP_GPIO_BLUE, -BSP_PWM_TIM5_CH1, -}; -int8_t BSP_LED_Set(char sign,DEVICE_LED_t ch,bool value,float duty_cycle) +int8_t LED_PWMSet(BSP_PWM_Channel_t channel,float duty_cycle) { - switch(sign){ - case 'p': - case 'P': + if (duty_cycle < 0.0f || duty_cycle > 1.0f) { return DEVICE_ERR_NULL; // 错误:占空比超出范围 - } - uint16_t pulse = (uint16_t)(duty_cycle * (float)UINT16_MAX); - BSP_PWM_Start(LED_Map.channel); - BSP_PWM_SetComp(LED_Map.channel, pulse); - break; - - case 'g': - case 'G': - BSP_GPIO_WritePin(LED_Map.gpio,value); - break; - default: - return DEVICE_ERR_INITED; // 错误:无效的控制方式 - } + } + uint16_t pulse = (uint16_t)(duty_cycle * (float)UINT16_MAX); + BSP_PWM_Start(channel); + BSP_PWM_SetComp(channel, pulse); + return DEVICE_OK; +} + +int8_t LED_GPIOSet(BSP_GPIO_t gpio,bool value) +{ + BSP_GPIO_WritePin(gpio,value); return DEVICE_OK; } diff --git a/assets/User_code/device/led.h b/assets/User_code/device/led.h index 39fa98b..7765a57 100644 --- a/assets/User_code/device/led.h +++ b/assets/User_code/device/led.h @@ -14,19 +14,14 @@ extern "C" { /* Exported macro ----------------------------------------------------------- */ /* Exported types ----------------------------------------------------------- */ - -/* LED ??? */ typedef struct { BSP_GPIO_t gpio; BSP_PWM_Channel_t channel; } DEVICE_LED_t; - - extern DEVICE_LED_t LED_Map; /* Exported functions prototypes -------------------------------------------- */ - - -int8_t BSP_LED_Set(char sign,DEVICE_LED_t ch,bool value,float duty_cycle); +int8_t LED_PWMSet(BSP_PWM_Channel_t channel,float duty_cycle); +int8_t LED_GPIOSet(BSP_GPIO_t gpio,bool value); #ifdef __cplusplus }