Слияние кода завершено, страница обновится автоматически
/**
* \file b_drv_mcp4018.c
* \version v0.0.1
* \date 2024-05-21
* \author miniminiminini (405553848@qq.com)
* \brief
*
* Copyright (c) 2024 by miniminiminini. All Rights Reserved.
*/
/* Includes ----------------------------------------------*/
#include "drivers/inc/b_drv_mcp4018.h"
#include "utils/inc/b_util_log.h"
/**
* \defgroup MCP4018_Private_FunctionPrototypes
* \{
*/
/**
* }
*/
/**
* \defgroup MCP4018_Exported_Variables
* \{
*/
/**
* }
*/
/**
* \defgroup MCP4018_Private_TypesDefinitions
* \{
*/
/**
* }
*/
/**
* \defgroup MCP4018_Private_Defines
* \{
*/
#define DRIVER_NAME MCP4018
/**
* }
*/
/**
* \defgroup MCP4018_Private_Macros
* \{
*/
/**
* }
*/
/**
* \defgroup MCP4018_Private_Variables
* \{
*/
bDRIVER_HALIF_TABLE(bMCP4018_HalIf_t, DRIVER_NAME);
static uint8_t mcp4018_default_buf[1] = {MCP4018_DEFAULT_LEVEL};
/**
* }
*/
/**
* \defgroup MCP4018_Private_Functions
* \{
*/
static int _bMCP4018Write(bDriverInterface_t *pdrv, uint32_t off, uint8_t *pbuf, uint32_t len)
{
uint8_t tmp[1] = {0};
bDRIVER_GET_HALIF(_if, bMCP4018_HalIf_t, pdrv);
if (len != 1)
{
b_log_e("len!= 1!!!");
return -1;
}
bHalI2CReadByte(_if, tmp, 1);
if (tmp[0] == pbuf[0])
{
b_log("MCP4018=%d,no need to write", tmp[0]);
return len;
}
bHalI2CWriteByte(_if, pbuf, 1);
return len;
}
static int _bMCP4018Read(bDriverInterface_t *pdrv, uint32_t off, uint8_t *pbuf, uint32_t len)
{
bDRIVER_GET_HALIF(_if, bMCP4018_HalIf_t, pdrv);
if (len != 1)
{
b_log_e("len!= 1!!!");
return -1;
}
bHalI2CReadByte(_if, pbuf, 1);
return len;
}
static int _bMCP4018Open(bDriverInterface_t *pdrv)
{
_bMCP4018Write(pdrv, 0, mcp4018_default_buf, 1);
return 0;
}
static int _bMCP4018Close(bDriverInterface_t *pdrv)
{
_bMCP4018Write(pdrv, 0, mcp4018_default_buf, 1);
return 0;
}
/**
* }
*/
/**
* \defgroup MCP4018_Exported_Functions
* \{
*/
int bMCP4018_Init(bDriverInterface_t *pdrv)
{
bDRIVER_STRUCT_INIT(pdrv, DRIVER_NAME, bMCP4018_Init);
pdrv->read = _bMCP4018Read;
pdrv->write = _bMCP4018Write;
pdrv->open = _bMCP4018Open;
pdrv->close = _bMCP4018Close;
return 0;
}
bDRIVER_REG_INIT(B_DRIVER_MCP4018, bMCP4018_Init);
/**
* }
*/
/**
* }
*/
/**
* }
*/
/**
* }
*/
/***** Copyright (c) 2024 miniminiminini *****END OF FILE*****/
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )