38 #ifndef DRIVER_AT24CXX_H
39 #define DRIVER_AT24CXX_H
102 uint8_t (*
iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
103 uint8_t (*
iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
145 #define DRIVER_AT24CXX_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
153 #define DRIVER_AT24CXX_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
161 #define DRIVER_AT24CXX_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
169 #define DRIVER_AT24CXX_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
177 #define DRIVER_AT24CXX_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
185 #define DRIVER_AT24CXX_LINK_IIC_READ_ADDRESS16(HANDLE, FUC) (HANDLE)->iic_read_address16 = FUC
193 #define DRIVER_AT24CXX_LINK_IIC_WRITE_ADDRESS16(HANDLE, FUC) (HANDLE)->iic_write_address16 = FUC
201 #define DRIVER_AT24CXX_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
209 #define DRIVER_AT24CXX_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
uint8_t at24cxx_set_type(at24cxx_handle_t *handle, at24cxx_t type)
set the chip type
uint8_t at24cxx_get_addr_pin(at24cxx_handle_t *handle, at24cxx_address_t *addr_pin)
get the chip address pin
uint8_t at24cxx_init(at24cxx_handle_t *handle)
initialize the chip
struct at24cxx_info_s at24cxx_info_t
at24cxx information structure definition
uint8_t at24cxx_read(at24cxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len)
read bytes from the chip
at24cxx_t
at24cxx type enumeration definition
uint8_t at24cxx_deinit(at24cxx_handle_t *handle)
close the chip
struct at24cxx_handle_s at24cxx_handle_t
at24cxx handle structure definition
uint8_t at24cxx_write(at24cxx_handle_t *handle, uint32_t address, uint8_t *buf, uint16_t len)
write bytes to the chip
at24cxx_address_t
at24cxx address enumeration definition
uint8_t at24cxx_info(at24cxx_info_t *info)
get chip's information
uint8_t at24cxx_set_addr_pin(at24cxx_handle_t *handle, at24cxx_address_t addr_pin)
set the chip address pin
uint8_t at24cxx_get_type(at24cxx_handle_t *handle, at24cxx_t *type)
get the chip type
at24cxx handle structure definition
void(* delay_ms)(uint32_t ms)
uint8_t(* iic_read_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* iic_write_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_deinit)(void)
at24cxx information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v