From 031b800f058ceac2aa2144d7ea1d75a1e65f8555 Mon Sep 17 00:00:00 2001 From: MacRsh <1063220965@qq.com> Date: Fri, 26 May 2023 23:40:03 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=87=BD=E6=95=B0=E4=BC=A0?= =?UTF-8?q?=E5=8F=82=E7=B1=BB=E5=9E=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/wch/driver/drv_adc.c | 18 +++++++++--------- bsp/wch/driver/drv_dac.c | 6 +++--- device/adc/adc.c | 8 +++----- device/adc/adc.h | 2 +- device/dac/dac.c | 8 +++----- device/dac/dac.h | 2 +- 6 files changed, 20 insertions(+), 24 deletions(-) diff --git a/bsp/wch/driver/drv_adc.c b/bsp/wch/driver/drv_adc.c index ed96c86..37b7e2c 100644 --- a/bsp/wch/driver/drv_adc.c +++ b/bsp/wch/driver/drv_adc.c @@ -51,45 +51,45 @@ mr_err_t ch32_adc_configure(mr_adc_t adc, mr_state_t state) return MR_ERR_OK; } -mr_err_t ch32_adc_channel_configure(mr_adc_t adc, mr_uint16_t channel, mr_state_t state) +mr_err_t ch32_adc_channel_configure(mr_adc_t adc, struct mr_adc_config *config) { struct ch32_adc *hw = (struct ch32_adc *)adc->device.data; GPIO_InitTypeDef GPIO_InitStructure = {0}; GPIO_TypeDef *GPIOx = {0}; - if (channel <= 7) + if (config->channel <= 7) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIOx = GPIOA; - } else if (channel <= 10) + } else if (config->channel <= 10) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIOx = GPIOB; - } else if (channel <= 15) + } else if (config->channel <= 15) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIOx = GPIOC; } - else if(channel <= 17) + else if(config->channel <= 17) { ADC_TempSensorVrefintCmd(ENABLE); } else return -MR_ERR_INVALID; - if (state == MR_ENABLE) + if (config->state == MR_ENABLE) GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; else GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStructure.GPIO_Pin = (1 << channel); + GPIO_InitStructure.GPIO_Pin = (1 << config->channel); GPIO_Init(GPIOx, &GPIO_InitStructure); MR_LOG_D(LOG_TAG, "Config %s %d %d\r\n", hw->name, - channel, - state); + config->channel, + config->state); return MR_ERR_OK; } diff --git a/bsp/wch/driver/drv_dac.c b/bsp/wch/driver/drv_dac.c index 9f71128..50aa862 100644 --- a/bsp/wch/driver/drv_dac.c +++ b/bsp/wch/driver/drv_dac.c @@ -58,7 +58,7 @@ mr_err_t ch32_dac_configure(mr_dac_t dac, mr_state_t state) return MR_ERR_OK; } -mr_err_t ch32_dac_channel_configure(mr_dac_t dac, mr_uint16_t channel, mr_state_t state) +mr_err_t ch32_dac_channel_configure(mr_dac_t dac, struct mr_dac_config *config) { struct ch32_dac *hw = (struct ch32_dac *)dac->device.data; GPIO_InitTypeDef GPIO_InitStructure = {0}; @@ -83,8 +83,8 @@ mr_err_t ch32_dac_channel_configure(mr_dac_t dac, mr_uint16_t channel, mr_state_ MR_LOG_D(LOG_TAG, "Config %s %d %d\r\n", hw->name, - channel, - state); + config->channel, + config->state); return MR_ERR_OK; } diff --git a/device/adc/adc.c b/device/adc/adc.c index 8d08368..9484f91 100644 --- a/device/adc/adc.c +++ b/device/adc/adc.c @@ -39,9 +39,7 @@ static mr_err_t mr_adc_ioctl(mr_device_t device, int cmd, void *args) { if (args) { - return adc->ops->channel_configure(adc, - ((struct mr_adc_config *)args)->channel, - ((struct mr_adc_config *)args)->state); + return adc->ops->channel_configure(adc, (struct mr_adc_config *)args); } return - MR_ERR_INVALID; } @@ -58,7 +56,7 @@ static mr_ssize_t mr_adc_read(mr_device_t device, mr_off_t pos, void *buffer, mr if (size < sizeof(*recv_buffer)) { - MR_LOG_E(LOG_TAG, "Device %s: Invalid read size %d\r\n", device->object.name, size); + MR_LOG_E(LOG_TAG, "Device %s: Invalid read bufsz %d\r\n", device->object.name, size); return - MR_ERR_INVALID; } @@ -77,7 +75,7 @@ static mr_err_t _err_io_adc_configure(mr_adc_t adc, mr_state_t state) return - MR_ERR_IO; } -static mr_err_t _err_io_adc_channel_configure(mr_adc_t adc, mr_uint16_t channel, mr_state_t state) +static mr_err_t _err_io_adc_channel_configure(mr_adc_t adc, struct mr_adc_config *config) { MR_ASSERT(0); return - MR_ERR_IO; diff --git a/device/adc/adc.h b/device/adc/adc.h index c973ca2..15070a7 100644 --- a/device/adc/adc.h +++ b/device/adc/adc.h @@ -25,7 +25,7 @@ typedef struct mr_adc *mr_adc_t; struct mr_adc_ops { mr_err_t (*configure)(mr_adc_t adc, mr_state_t state); - mr_err_t (*channel_configure)(mr_adc_t adc, mr_uint16_t channel, mr_state_t state); + mr_err_t (*channel_configure)(mr_adc_t adc, struct mr_adc_config *config); mr_uint32_t (*read)(mr_adc_t adc, mr_uint16_t channel); }; diff --git a/device/dac/dac.c b/device/dac/dac.c index 4e6be2e..77b5517 100644 --- a/device/dac/dac.c +++ b/device/dac/dac.c @@ -39,9 +39,7 @@ static mr_err_t mr_dac_ioctl(mr_device_t device, int cmd, void *args) { if (args) { - return dac->ops->channel_configure(dac, - ((struct mr_dac_config *)args)->channel, - ((struct mr_dac_config *)args)->state); + return dac->ops->channel_configure(dac, (struct mr_dac_config *)args); } return - MR_ERR_INVALID; } @@ -77,7 +75,7 @@ static mr_err_t _err_io_dac_configure(mr_dac_t dac, mr_state_t state) return - MR_ERR_IO; } -static mr_err_t _err_io_dac_channel_configure(mr_dac_t dac, mr_uint16_t channel, mr_state_t state) +static mr_err_t _err_io_dac_channel_configure(mr_dac_t dac, struct mr_dac_config *config) { MR_ASSERT(0); return - MR_ERR_IO; @@ -117,4 +115,4 @@ mr_err_t mr_hw_dac_add(mr_dac_t dac, const char *name, struct mr_dac_ops *ops, v return MR_ERR_OK; } -#endif +#endif \ No newline at end of file diff --git a/device/dac/dac.h b/device/dac/dac.h index ef3ee35..366bc12 100644 --- a/device/dac/dac.h +++ b/device/dac/dac.h @@ -25,7 +25,7 @@ typedef struct mr_dac *mr_dac_t; struct mr_dac_ops { mr_err_t (*configure)(mr_dac_t dac, mr_state_t state); - mr_err_t (*channel_configure)(mr_dac_t dac, mr_uint16_t channel, mr_state_t state); + mr_err_t (*channel_configure)(mr_dac_t dac, struct mr_dac_config *config); void (*write)(mr_dac_t dac, mr_uint16_t channel, mr_uint32_t value); };