led修改

This commit is contained in:
Robofish 2025-09-07 21:42:14 +08:00
parent f449b15fe2
commit 3062fbbef0
2 changed files with 14 additions and 28 deletions

View File

@ -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;
}

View File

@ -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
}