diff --git a/components/drivers/misc/adc.c b/components/drivers/misc/adc.c index f5d7d52c044..43a9750349a 100644 --- a/components/drivers/misc/adc.c +++ b/components/drivers/misc/adc.c @@ -43,16 +43,15 @@ static rt_ssize_t _adc_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size static rt_err_t _adc_control(rt_device_t dev, int cmd, void *args) { rt_adc_device_t adc = (struct rt_adc_device *)dev; - rt_err_t result; - + rt_err_t result = RT_ERROR; if (cmd == RT_ADC_CMD_ENABLE && adc->ops->enabled) { - result = adc->ops->enabled(adc, (rt_uint32_t)args, RT_TRUE); + result = adc->ops->enabled(adc, (rt_int8_t)(rt_base_t)args, RT_TRUE); } else if (cmd == RT_ADC_CMD_DISABLE && adc->ops->enabled) { - result = adc->ops->enabled(adc, (rt_uint32_t)args, RT_FALSE); + result = adc->ops->enabled(adc, (rt_int8_t)(rt_base_t)args, RT_FALSE); } else if (cmd == RT_ADC_CMD_GET_RESOLUTION && adc->ops->get_resolution && args) {