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 macro ------------------------------------------------------------ */
/* Private typedef ---------------------------------------------------------- */ /* 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) { if (duty_cycle < 0.0f || duty_cycle > 1.0f) {
return DEVICE_ERR_NULL; // 错误:占空比超出范围 return DEVICE_ERR_NULL; // 错误:占空比超出范围
} }
uint16_t pulse = (uint16_t)(duty_cycle * (float)UINT16_MAX); uint16_t pulse = (uint16_t)(duty_cycle * (float)UINT16_MAX);
BSP_PWM_Start(LED_Map.channel); BSP_PWM_Start(channel);
BSP_PWM_SetComp(LED_Map.channel, pulse); BSP_PWM_SetComp(channel, pulse);
break; return DEVICE_OK;
}
case 'g':
case 'G': int8_t LED_GPIOSet(BSP_GPIO_t gpio,bool value)
BSP_GPIO_WritePin(LED_Map.gpio,value); {
break; BSP_GPIO_WritePin(gpio,value);
default:
return DEVICE_ERR_INITED; // 错误:无效的控制方式
}
return DEVICE_OK; return DEVICE_OK;
} }

View File

@ -14,19 +14,14 @@ extern "C" {
/* Exported macro ----------------------------------------------------------- */ /* Exported macro ----------------------------------------------------------- */
/* Exported types ----------------------------------------------------------- */ /* Exported types ----------------------------------------------------------- */
/* LED ??? */
typedef struct { typedef struct {
BSP_GPIO_t gpio; BSP_GPIO_t gpio;
BSP_PWM_Channel_t channel; BSP_PWM_Channel_t channel;
} DEVICE_LED_t; } DEVICE_LED_t;
extern DEVICE_LED_t LED_Map;
/* Exported functions prototypes -------------------------------------------- */ /* Exported functions prototypes -------------------------------------------- */
int8_t LED_PWMSet(BSP_PWM_Channel_t channel,float duty_cycle);
int8_t LED_GPIOSet(BSP_GPIO_t gpio,bool value);
int8_t BSP_LED_Set(char sign,DEVICE_LED_t ch,bool value,float duty_cycle);
#ifdef __cplusplus #ifdef __cplusplus
} }