1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/notrynohigh-BabyOS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
b_drv_mcp4018.c 2.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
bean Отправлено 9 месяцев назад 4eb39b1
/**
* \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 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/notrynohigh-BabyOS.git
git@gitlife.ru:oschina-mirror/notrynohigh-BabyOS.git
oschina-mirror
notrynohigh-BabyOS
notrynohigh-BabyOS
master